前言:在日常工作中编写存储过程时,需要用到把某个查询结果集中的一列拼接起来,然后抛出数据,在工作中还挺常用的,写下来供以后查看

一、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 先准备一张表和数据

SQLSERVER 把SELECT结果集中一列的所有值用逗号分割拼接(Stuff函数)_示例代码

3.2 使用Stuff进行查询分割

SQLSERVER 把SELECT结果集中一列的所有值用逗号分割拼接(Stuff函数)_SQL SERVER_02

4. 示例代码



1 SELECT STUFF((SELECT TOP 10 ',' + CEmpName FROM dbo.Sys_User FOR XML PATH('')),1,1,'')