- 在某些情况下,我们需要Group By 后,对某些字段进行相加,并在分组结果中展示出来,需要用到 for xml path
表如下:
需要得到如下分组结果:
这个时候,For Xml Path 就可以大显身手了,SQL 语句如下:
SELECT DeptName,
STUFF(
(
SELECT ',' + DeptName FROM DeptInfo where DeptName = T.DeptName FOR XML PATH('')
),
1, 1,'' ) AS DeptTypeList
FROM DeptInfo T
GROUP BY DeptName
2. STUFF 用来截取字符并代替字符串
SELECT STUFF('123456',2,2,'') --从第2位开始往后数2位替换成'' 1456
SELECT STUFF('123456',1,2,'') --从第2位开始往后数2位替换成'' 3456