[英]SQL Concatenate and group
我需要一個TSQL版本的group_concat Simmilar到此處找到的示例:
Policy Destination ID
-------------------------
PolA DestA 1
PolA DestA 2
PolB DestB 3
PolB DestB 4
PolC DestC 5
PolC DestC 6
PolC DestD 7
PolA DestA 1,2
PolB DestB 3,4
PolC DestC 5,6
PolC DestD 7
分組是基於前兩列的唯一性,然后是第三列的並置輸出。
我找到了此鏈接,但只考慮了2列
任何幫助,將不勝感激。
在MSSQL Synax中:
SELECT Policy, Destination, STRING_AGG ( [ID], ',' ) IDs
FROM Table
您可以嘗試以下方法:
SELECT G.Policy, G.Destination,
stuff(
(select cast(',' as varchar(max)) + U.ID
from yourtable U
WHERE U.Policy = G.Policy and U.Destination = G.Destination
order by U.Policy
for xml path('')
), 1, 1, '') AS IDs
FROM yourtable G group BY G.Policy, G.Destination
我只是為您創建PolA
示例表,只需將CTE替換為您的表,請嘗試以下操作:
WITH ABC
as
(
select 'PolA' as Policy,'DestA' as Destination,'1' as ID
UNION ALL
select 'PolA','DestA','2'
)
SELECT Policy, Destination,
STUFF((SELECT ',' + A.ID FROM ABC as A WHERE A.Policy = B.Policy FOR XML PATH('')),1,1,'') as ID
FROM ABC as B
GROUP BY B.policy, B.Destination
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.