前言:在日常工作中编写存储过程时,需要用到把某个查询结果集中的一列拼接起来,然后抛出数据,在工作中还挺常用的,写下来供以后查看
一、Stuff函数的使用
1. 语法
STUFF ( character_expression1 , start , length ,character_expression2 )
2. 参数
character_expression1 :传入的字符串,可以是varchar、nvarchar或者是uniqueidentifier(二进制数据类型,如newid())
start :起始位置,大于等于1并且小于等于character_expression1的长度的整数,否则最终结果会是null,如果是float类型的数值会取整数部分
length :字符长度,指定要删除的字符数。大于等于0的正整数,如果小于0结果会是null,如果大于character_expression1的长度则从start的位置一直删到最后
character_expression2:在删掉字符的地方填充新的字符,如果不填充则以''代替
3. 示例
3.1 先准备一张表和数据
3.2 使用Stuff进行查询分割
4. 示例代码
1 SELECT STUFF((SELECT TOP 10 ',' + CEmpName FROM dbo.Sys_User FOR XML PATH('')),1,1,'')