字段名称的SQL查询

时间:2013-01-22 21:36:10

标签: sql

我表格中的名字显示如此,

Select fname-ab, fname-wxyz, lname-ab, lname-wxyz
From table

有没有办法编写一个返回all结果的查询 字段名称以-ab

结尾的字段

2 个答案:

答案 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