sql server 字符串链接,及表连接多个值显示连接显示为一列 STUFF for xml path
STUFF ( character_expression , start , length , replaceWith_expression )
以下示例从第一个字符串 abcdef 的第 2 个位置 (b) 开始删除三个字符,然后在删除位置插入第二个字符串,从而创建并返回一个字符串。
SELECT STUFF('abcdef', 2, 3, 'ijklmn');
结果集
aijklmnef
示例
select STUFF('abcdefg',1,0,'1234') --结果为'1234abcdefg'
select STUFF('abcdefg',1,1,'1234') --结果为'1234bcdefg'
select STUFF('abcdefg',2,1,'1234') --结果为'a1234cdefg'
select STUFF('abcdefg',2,2,'1234') --结果为'a1234defg'
使用场景
1个文件夹对应多个文件,把文件ID用一个字段用逗号分隔显示出在一列
如下图
select a.*,
stuff((select ',' + F_id from lr_base_annexesfile u where u.F_FolderId=a.AttachList for xml path('')),1, 1, '') as abc
from [HT_ERP_Molding_Process] a;
for xml path('')
这句是把得到的内容以XML的形式显示。
stuff((select ',' + F_id from lr_base_annexesfile u where u.F_FolderId=a.AttachList for xml path('')),1, 1, '')
这句是把拼接的内容的第一个“,”去掉