SQL查询多行为单行

时间:2013-07-30 22:35:50

标签: sql sql-server

有没有办法更改通常会将具有相同值的多行返回到一行的SQL查询?

例如,如果我的现有查询返回:

ColA ColB
1    AA
1    BB
1    CC
2    AA
3    AA

我可以将查询更改为仅返回3行,并将第2和第3个结果放入第一行,这样您就有一行:1 AA BB CC

1 个答案:

答案 0 :(得分:1)

不太好但是工作(我在MySql中缺少group_concat):

SELECT ColA, 
       ColB=STUFF(
             (SELECT ' ' + ColB 
              FROM dbo.Table1 t2
              WHERE t1.ColA = t2.ColA 
              FOR XML PATH (''))
             , 1, 1, '')
FROM dbo.Table1 t1
GROUP BY ColA

Demo

[编辑:出于任何原因推测SQL-Server]