在 SQL 中选择表中不包含模式的列



我想选择所有不包含"acc&quot模式的列。

我写了这段代码

select (
select COLUMN_NAME  from  information_schema.columns 
where table_name='output_bba'
and column_name not like 'acc%') 
from ifrs17.output_bba

但是我收到这个错误信息:

子查询返回多个值。当子查询跟随=、!=、<、<=、>、>=或子查询用作表达式时,不允许这样做。

在这个问题上有人能帮我吗?

您正在尝试从动态获得的列中进行选择。试试这个:

Declare @Cols varchar(max)
Select @Cols=Stuff((Select ','+COLUMN_NAME from information_schema.columns Where table_name='output_bba' and column_name not like 'acc%' For XML Path('')),1,1,'')
Declare @SQL nvarchar(max)
Set @SQL='Select '+@Cols+' From ifrs17.output_bba';
Execute sp_executesql @SQL;

最新更新