SqlServer Stuff

本文介绍了一种在 SQL Server 中使用 STUFF 和 FOR XML PATH 函数将多个用户名拼接成一个由逗号分隔的字符串的方法。通过逐步解析 SQL 语句,帮助读者理解如何高效地进行字符串拼接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SqlServer Stuff


DECLARE @TAB TABLE
(
       UserID INT,
       UserName NVARCHAR(50)
)
INSERT INTO @TAB
(
    UserID,
    UserName
)
VALUES
(0,N'西门炊鳕'),
(1,N'夜雇乘'),
(2,N'令狐冲'),
(3,N'士兵甲'),
(4,N'胡学'),
(5,N'五道口'),
(6,N'六道口')
--目的.将用户名用分隔符','隔开.最后得出字符:"西门炊鳕,夜雇乘,令狐冲,士兵甲,胡学,五道口,六道口"
--最终的Sql语句猛一看,有点懵,下面分解开来一步步说.
SELECT STUFF
(
(SELECT ','+UserName FROM @TAB FOR XML PATH('')),
1,
1,
''
)
--SELECT *FROM @TAB
--FOR XML PATH('')
SELECT UserName FROM @TAB FOR XML PATH('')
--FOR XML PATH('')之加个分隔符','
SELECT ','+UserName FROM @TAB FOR XML PATH('')
--Stuff将第一个分隔符','截取
SELECT STUFF
(
(SELECT ','+UserName FROM @TAB FOR XML PATH('')),
1,
1,
''
)
--Stuff将第一个分隔符'***'截取
SELECT STUFF
(
(SELECT '***'+UserName FROM @TAB FOR XML PATH('')),
1,
3,
''
)

 

转载于:https://www.cnblogs.com/love-zf/p/11111859.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值