有没有办法更改通常会将具有相同值的多行返回到一行的SQL查询?
例如,如果我的现有查询返回:
ColA ColB
1 AA
1 BB
1 CC
2 AA
3 AA
我可以将查询更改为仅返回3行,并将第2和第3个结果放入第一行,这样您就有一行:1 AA BB CC
?
答案 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
[编辑:出于任何原因推测SQL-Server]