MSSQL-多筆資料查詢結果以分隔符號串聯方法
有需要將多筆資料查詢結果以分隔符號串聯可以參考以下方法,不用另外寫函式
效果同MYSQL group_concat 函數
PS:如果使用在SqlDataSource,在SQL語法檢查會有錯誤,但實際上還是可以使用
範例資料表:
1.無group 需求:
SELECT stuff( (SELECT ','+[name] FROM [test001] for xml path('') ,1,1,'') AS test1
2.有group需求: (範例:以old分組)
SELECT parent.old, stuff((SELECT ','+[name] FROM [test001] AS child WHERE child.old = parent.old for xml path('')),1,1,'') AS name
FROM [test001] AS parent
GROUP BY old
-------------------------------
SELECT Split.C.value('.', 'NVARCHAR(MAX)') DATA
FROM
(
SELECT CAST
('<X>'+REPLACE
(
(
select [QQQ] from [QQ]
), ',', '</X><X>'
)+'</X>' AS XML
) AS String
) AS CC
CROSS APPLY String.nodes('/X') AS Split(C)



沒有留言:
張貼留言