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


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

 

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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM