如何在查询结果中返回列名?

时间:2011-11-15 18:33:10

标签: sql database sql-server-2008 tsql

我正在使用此查询:

Select *
From table1
Join table2 on
     table2.column1
     + table2.column2
     + table2.column3
     + table2.column4
LIKE '%'
     + table1.column1
     + '%'
ORDER BY table1.column1

如何返回找到结​​果的列名称。例如,如果table2.column1中的单词“bob”在table2.column3中找到(将此列称为“comments”),则查询结果应为“bob”,后跟“comments”(t2.c3),之后所有其他专栏(t2.c1,t2.c2,t2.c3,t2.c4)。

2 个答案:

答案 0 :(得分:0)

Select x.bob, y.column1, y.column2, y.column3, y.column4
From table1 x
Join table2 y on
     table2.column1
     + table2.column2
     + table2.column3
     + table2.column4
LIKE '%'
     + table1.column1
     + '%'
ORDER BY table1.column1

答案 1 :(得分:0)

我不知道你要做什么,但是你可以通过这个简单的技巧获得数据所在的“列”。根据需要进行修改。

而不是select *,列出所有结果列。然后为每个结果列添加另一个包含在isNull()中的列,以指示它来自哪个列。

Select 

table2.comments,
isNull(table2.comments, null, 'comments') col1,

table2.column2,
isNull(table2.column2, null, 'column2') col1

From table1 
Join table 2 on 
     table2.column1 
     + table2.column2 
     + table2.column3 
     + table2.column4 
LIKE '%' 
     + table1.column1 
     + '%' 
ORDER BY table1.column1