我需要一个select查询,它返回一些列的值。 我想要的专栏以' U_S'开头。
Select * from em
我需要转换上面的查询。 ' *'需要是结果(但用逗号):
select COLUMN_NAME from information_schema.columns
where table_name='em' and column_name like 'u_s%'
答案 0 :(得分:3)
有无数这样的例子,但据我所知,有时我们都需要一点启动。
Select Stuff((Select ',' +quotename(Column_Name)
From information_schema.columns
Where table_name='em' and column_name like 'u_s%'
For XML Path ('')),1,1,'')
答案 1 :(得分:1)
您可以使用以下代码:
declare @col varchar(500)
select @col=Stuff((Select ',' +quotename(Column_Name)
From information_schema.columns
Where table_name='em' and column_name like 'u_s%'
For XML Path ('')),1,1,'')
exec('select '+@col
+' from em')
答案 2 :(得分:0)
select CAST(
(select COLUMN_NAME + ','
from information_schema.columns
where table_name='em' and column_name like 'u_s%'
for xml path('')
) as nvarchar(max)
)
你必须删除最后一个逗号...
答案 3 :(得分:0)
您还可以直接在变量中选择列名,然后可以将其用于动态SQL。
spring stop
@Cols最初为null,null +','给出null 所以结果不会以逗号开头。
只是添加了引号功能作为安全措施 以防列名有时在名称中包含空格。