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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章