转自: http://blog.csdn.net/winnyrain/article/details/77317645
stuff((select ',' + fieldname from tablename for xml path('')),1,1,'')
这一整句的作用是将多行fieldname字段的内容串联起来,用逗号分隔。
例如表
fieldname
-----------
AAA
BBB
CCC
串联之后就是字符串: AAA,BBB,CCC
用法:
select *,stuff((select ',' + fieldname from table1 for xml path('')),1,1,'') as field from table2
------------------
分组拼接
SELECT parent, STUFF(( SELECT ','+ child FROM t a WHERE b.parent = a.parent FOR XML PATH('')),1 ,1, '') children FROM t b GROUP BY parent
STUFF 函数将字符串插入到另一个字符串中。 它从第一个字符串的开始位置删除指定长度的字符;然后将第二个字符串插入到第一个字符串的开始位置。
适用范围:SQL Server(SQL Server 2008 至当前版本),Windows Azure SQL Database(初始版本至当前版本)。
STUFF ( character_expression , start , length , replaceWith_expression )