首页 > 解决方案 > 使用递归函数模拟 group_concat

问题描述

我有一张像

ID NAME
1  STALIN
2  MERWIN
1  AMALA
1 RAYON

我想出去

ID NAME
1 STALIN,AMALA,RAYON
2 MERWIN

如何使用递归函数做到这一点

标签: sqlsql-serverfunctionrecursionsql-server-2012

解决方案


您可以使用XML Path

SELECT ID, NAME = 
STUFF((SELECT ', ' + NAME
       FROM your_table b 
       WHERE b.ID = a.ID 
      FOR XML PATH('')), 1, 2, '')
FROM your_table a
GROUP BY ID

现场演示 在此处输入图像描述

按照此链接查看案例 3。它解释了为什么在递归游标上使用 XML 路径。


推荐阅读