我表格中的名字显示如此,
Select fname-ab, fname-wxyz, lname-ab, lname-wxyz
From table
有没有办法编写一个返回all结果的查询
字段名称以-ab
答案 0 :(得分:3)
大多数数据库支持和information_schema.columns表。您可以执行以下查询以获取符合条件的所有列:
select column_name
from information_schema.columns
where table_name = 'table' and column_name like '%ab'
然后,您可以将此列表放入Excel,创建公式以在末尾添加逗号,将列表复制到SQL界面,并修复语法(添加select
,添加from
,从列表中删除最后一个逗号。
这实际上比描述更容易。
或者,您可以使用某种形式的动态SQL,但其描述取决于数据库。
答案 1 :(得分:0)
这样可行......
Declare @tableSchema Varchar(50) = 'dbo',
@tableName Varchar(50) = 'table',
@columns Nvarchar(Max),
@sql Nvarchar(Max)
Select @columns = Coalesce(@columns + ',','') + '[' + sc.name + ']'
From syscolumns sc
Join sysobjects so
On sc.id = so.id
Join sys.schemas ss
On so.[uid] = ss.[schema_id]
Where so.name = @tableName
And ss.name = @tableSchema
And sc.name like '%-ab'
Set @sql = 'Select ' + @columns + '
From [' + @tableSchema + '].[' + @tableName + ']'
Exec sp_executesql @sql