需要连接同一行的列值
本文关键字:一行 连接 | 更新日期: 2023-09-27 17:53:34
在如此少的join之后,我的视图是这样的
ID Code
1 US
1 UK
1 GR
2 US
2 IN
3 US
3 AF
3 RU
3 SA
要求结果:
ID Code
1 US,UK,GR
2 US,IN
3 US,AF,RU,SA
我尝试使用FOR XML PATH.
但是由于我的表中记录的数量很高,这会导致性能问题,执行
您可以使用下面的查询,
Select T.Id,
Left(T.[Codes],Len(T.[Codes])-1) As Codes
From
(
Select distinct T2.ID,
(
Select T1.Code + ',' AS [text()]
From @T T1
Where T1.ID = T2.ID
ORDER BY T1.ID
For XML PATH ('')
) [Codes]
From @T T2
) T
@T
是您的输入表,如Declare @T as Table (ID INT, Code varchar(10))
查看下面的链接,在这里您可以找到满足您需求的不同示例:
在Transact-SQL中连接行值