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, '')
这句是把拼接的内容的第一个“,”去掉
文章介绍了SQLServer中使用STUFF函数和FORXMLPATH方法来处理字符串,特别是如何将多个文件ID连接成一列显示。示例展示了STUFF函数如何删除并插入字符串部分,以及FORXMLPATH如何将查询结果组合成XML格式。在文件夹和文件的关系场景中,这种方法用于显示一个文件夹下的多个文件ID,以逗号分隔。
2609

被折叠的 条评论
为什么被折叠?



