如何将2个或更多列合并为一个?

时间:2015-06-23 18:45:45

标签: sql sql-server sql-merge

我对SQL中的一个任务有一个真正的问题,即以最有效的方式将来自2列和更多列的数据合并为1列。

id   column1   column2  column3 
1    ok                    notOK
2    
3    abraka     dabrra
4    miew                    haf

我需要将3条评论合并到1条评论栏中,如此

id   comments
1    ok                    
1    notOK
2    
3    abraka     
3    dabrra
4    miew                    
4 haf

现在我手动插入到表中我有id和注释列,我必须从主表中排序数据。这非常耗时,特别是当我有至少8个我想要合并的评论列时。

1 个答案:

答案 0 :(得分:4)

尝试此查询

Select Id, Comments 
From 
(
    Select Id, Column1 Comments From MyTable Where Column1 Is Not Null
    Union All
    Select Id, Column2 Comments From MyTable Where Column2 Is Not Null
    Union All
    Select Id, Column3 Comments From MyTable Where Column3 Is Not Null
) DerivedTable
Order by Id