SQL SERVER使用STUFF函数拼接记录为逗号分隔符

STUFF字符串函数是将字符串插入到另一个字符串中。它会删除开始位置第一个字符串中的指定长度的字符,然后将第二个字符串插入到开始位置的第一个字符串中,语法如下。

STUFF(,<开始>,<长度>,
参数是给定的字符串数据,可以是字符或二进制数据的常量,变量或列。参数是一个整数值,指定开始删除和插入的位置,可以是BIGINT类型。如果<开始>或<长度>参数为负数,则返回NULL字符串。如果参数比第一个长,则返回一个NULL字符串。 参数可以是BIGINT类型,它是一个整数,指定要删除的字符数。如果比第一个长,则删除发生到最后一个中的最后一个字符。


这一整句的作用是将多行字段的内容串联起来,用逗号分隔。
例如表
fieldname
-----------
AAA
BBB
CCC
串联之后就是字符串: AAA,BBB,CCC
for xml path是SQL Server 2005以后版本支持的一种生成XML的方式。具体如何使用,请参考联机丛书。

stuff函数的作用是去掉字符串最前面的逗号分隔符。

用法:

select *,stuff((select ',' + fieldname from table1 for xml path('')),1,1,'')  as  field from table2

 

参见:

http://www.cnblogs.com/yongheng178/archive/2012/06/27/2565631.html

http://wenda.so.com/q/1371521507061859

你可能感兴趣的:(数据库)