相同数据用分号分割

通常我们从一个表中取数据,把某个字段相同的数据用分号分割,格式如:A;B;C,一般可以写函数或者存储过程,那么有没有更简洁的办法了?有,SQL SERVER中可以用 FOR XML PATH的方法去取数据。例子如下:

把CategoryId相同的数据,用分号分割出来。

 1 SELECT  b.CategoryId ,
 2         LEFT(CategoryList, LEN(CategoryList) - 1) AS CategoryDtl
 3 FROM    ( SELECT    CategoryId ,
 4                     ( SELECT    CategoryDtlName + ';'
 5                       FROM      CategoryDtl
 6                       WHERE     CategoryId = a.CategoryId
 7                     FOR
 8                       XML PATH('')
 9                     ) AS CategoryList
10           FROM      CategoryDtl a
11           GROUP BY  CategoryId
12         ) b
View Code
原文地址:https://www.cnblogs.com/mjw1124/p/3279174.html