SQL查询在SQL Server中以逗号分隔符的形式获取聚合结果

sur*_*ran 19 sql sql-server select aggregate-functions sql-server-group-concat

我需要在表上编写一个sql查询,以便结果将具有group by列以及带有逗号分隔符的聚合列.

我的表格将采用以下格式

   |`````````|````````|
   |    ID   |  Value |
   |_________|________|
   |    1    |   a    |
   |_________|________|
   |    1    |   b    |
   |_________|________|
   |    2    |   c    |
   |_________|________|
Run Code Online (Sandbox Code Playgroud)

预期结果应采用以下格式

   |`````````|````````|
   |    ID   |  Value |
   |_________|________|
   |    1    |  a,b   |
   |_________|________|
   |    2    |   c    |
   |_________|________|
Run Code Online (Sandbox Code Playgroud)

Adr*_*iro 23

你想使用FOR XML PATH构造:

select 
    ID, 
    stuff((select ', ' + Value 
           from YourTable t2 where t1.ID = t2.ID 
           for xml path('')),
          1,2,'') [Values]
from YourTable t1
group by ID
Run Code Online (Sandbox Code Playgroud)

STUFF功能是摆脱了领先', '.

您还可以在此处查看其他示例: