我想写下如下查询:使用WHEN子句或类似的东西显示并不显示SELECT语句中的列?
我不想使用where子句。我想写一些-----不再显示A的东西。我觉得这个人是不可能的,因为以后再和别的我们可以将值分配给一个无法删除一个
Select
(CASE WHEN A>0 THEN (A) ELSE ----- END),
(CASE WHEN A>0 THEN (A) ELSE ----- END)
from table
我想写下如下查询:使用WHEN子句或类似的东西显示并不显示SELECT语句中的列?
我不想使用where子句。我想写一些-----不再显示A的东西。我觉得这个人是不可能的,因为以后再和别的我们可以将值分配给一个无法删除一个
Select
(CASE WHEN A>0 THEN (A) ELSE ----- END),
(CASE WHEN A>0 THEN (A) ELSE ----- END)
from table
这(被删除假设只有一列)的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
@ kiarash-moshar请检查这是否是必需的。 –
谢谢,它可以是一个很好的结果 –
我不知道你是问。请_edit_您的问题,并使用一些示例表格数据向我们展示您的想法。 –
您是否需要在案例或单列中选择多列 –
@ kiarash-moshar我在下面添加了一个答案,请检查。 –