有什么方法可以更改通常将具有相同值的多行返回到单行的 SQL 查询?
例如,如果我现有的查询返回这个:
ColA ColB
1 AA
1 BB
1 CC
2 AA
3 AA
我可以将查询更改为仅返回 3 行,并将 1 的第二和第三结果放入第一行,以便您有一行:1 AA BB CC
?
有什么方法可以更改通常将具有相同值的多行返回到单行的 SQL 查询?
例如,如果我现有的查询返回这个:
ColA ColB
1 AA
1 BB
1 CC
2 AA
3 AA
我可以将查询更改为仅返回 3 行,并将 1 的第二和第三结果放入第一行,以便您有一行:1 AA BB CC
?
不是很好但可以工作(我 group_concat
从 MySql 中丢失了):
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 ]