将列数据拼接为一个字段表示
1.需求说明:将cpjlh拼接成集合,字段名为cpjlhjh
sql
select a.HZDDH,c.CPJLH
from cpcjddh a
inner join cpcjdds c on a.djlsh =c.djlsh
inner join XTZHKZh x on c.cpjlh = x.YGH
where c.djlsh='161945'
2.处理方法:
select
STUFF ((SELECT ','+CPJLH FROM cpcjdds c where c.DjLsh='161945' FOR XML PATH('')),1,1,'') CPJLHjh
3.分析
3.1 将列合并
SELECT ','+CPJLH FROM cpcjdds c where c.DjLsh='161945' FOR XML PATH('')
3.2 STUFF()函数去除首位逗号
select
STUFF ((SELECT ','+CPJLH FROM cpcjdds c where c.DjLsh='161945' FOR XML PATH('')),1,1,'') CPJLHjh
4.里面的重点是
SELECT 需要合并的字段+',' FROM 表 FOR XML PATH('')
`STUFF (source_string, start, length, add_string)`
参考:
SQL Server STUFF()用法及代码示例
sqlserver中怎么将一列数据拼接成一个字符串