繁体   English   中英

需要串联同一行的列值

[英]Need to concatenate column values of same row

参加了那么几次之后,我的看法是这样的

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。

但是由于表中的记录数很多,这导致性能问题,执行时间超过20分钟

检查下面的链接,在这里您可以找到满足您要求的其他示例:

在Transact-SQL中串联行值

您可以使用以下查询,

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM