2017-06-02 44 views
-1

我想写下如下查询:使用WHEN子句或类似的东西显示并不显示SELECT语句中的列?

我不想使用where子句。我想写一些-----不再显示A的东西。我觉得这个人是不可能的,因为以后再和别的我们可以将值分配给一个无法删除一个

Select 
(CASE WHEN A>0 THEN (A) ELSE ----- END), 
(CASE WHEN A>0 THEN (A) ELSE ----- END) 
from table 
+2

我不知道你是问。请_edit_您的问题,并使用一些示例表格数据向我们展示您的想法。 –

+0

您是否需要在案例或单列中选择多列 –

+0

@ kiarash-moshar我在下面添加了一个答案,请检查。 –

回答

0

这(被删除假设只有一列)的SQL Server实现。数据库[学校]

表脚本

CREATE TABLE [dbo].[Matches] 
(
    [FootballerName] [varchar](100) NULL, 
    [Goal] [int] NULL, 
    [Tournament] [varchar](100) NULL 
) 

插入语句

insert into Matches(FootballerName,Goal,Tournament) 
select 'Messi ', 3 ,'La liga' union 
select 'Ronaldo ', 5 ,'UEFA' union 
select 'Surez ', 2 ,'La liga'; 

查询的结果(SELECT语句删除列的目标)

Declare @TableName varchar(100) 
SET @TableName='Matches' 
Declare @ColumnToRemove varchar(1000) 
SET @ColumnToRemove='Goal' 

DECLARE @ListOfColumn VARCHAR(8000) 
SELECT @ListOfColumn = COALESCE(@ListOfColumn + ',', '') + CAST(column_name AS VARCHAR) 
FROM INFORMATION_SCHEMA.columns 
WHERE [email protected] and table_catalog='School' and Column_Name<>@ColumnToRemove 

Declare @Query varchar(1000) 
SET @Query ='Select ' + @ListOfColumn +' from ' [email protected] 
EXEC(@Query) 
查询(删除一列)的

结果

FootballerName Tournament 
-------------- --------------- 
Messi   La liga 
Ronaldo   UEFA 
Surez   La liga 

结果(使用所有列)

FootballerName Goal Tournament 
-------------- ---- ----------- 
Messi   3  La liga 
Ronaldo   5  UEFA 
Surez   2  La liga 
+0

@ kiarash-moshar请检查这是否是必需的。 –

+0

谢谢,它可以是一个很好的结果 –