sql server 字符串链接,及表连接多个值显示连接显示为一列 STUFF for xml path

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用一个字段用逗号分隔显示出在一列

如下图

sql server 字符串链接,及表连接多个值显示连接显示为一列 STUFF for xml path_第1张图片

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, '')

这句是把拼接的内容的第一个“,”去掉

你可能感兴趣的:(xml,数据库,c#)