admin

SQL查询多行成单行

sql

有什么方法可以更改通常将具有相同值的多行返回到单行的SQL查询吗?

例如,如果我现有的查询返回以下内容:

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

我可以将查询更改为仅返回3行,并将1的第二和第三结果放入第一行,以便您有以下一行:1 AA BB CC吗?


阅读 134

收藏
2021-06-07

共1个答案

admin

并不是很好,但是可以工作(我在group_concatMySql中不见了 ):

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]

2021-06-07