通常我们从一个表中取数据,把某个字段相同的数据用分号分割,格式如: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