1

我在 SQL Server 2008 中设计了一个视图,它以这种格式显示 2 列不同的数据:

Column1 Column2
A       Text1
B       Text2
B       Text3
C       Text4
D       Text5
D       Text6
D       Text7
E       Text8

我必须做些什么才能让视图仅显示不同的 Column1 值和 Column2 值连接起来,如下所示:

Column1 Column2
A       Text1
B       Text2, Text3
C       Text4
D       Text5, Text6, Text7
E       Text8

如果我使用您似乎认为与此问题重复的答案中建议的代码,那么我会得到这种结果:

Column1 Column2
A       Text1,Text2,Text3,Text4,Text5,Text6,Text7,Text8
B       Text1,Text2,Text3,Text4,Text5,Text6,Text7,Text8
C       Text1,Text2,Text3,Text4,Text5,Text6,Text7,Text8
D       Text1,Text2,Text3,Text4,Text5,Text6,Text7,Text8
E       Text1,Text2,Text3,Text4,Text5,Text6,Text7,Text8

编辑:@techdo 修改后的代码有效,非常感谢。

4

1 回答 1

2

请试试:

SELECT
    Column1,
    STUFF(
    (SELECT ',' + Column2
       FROM YourTable t2
        WHERE t2.Column1=t1.Column1
        FOR XML PATH(''),type).value('.','nvarchar(max)'), 1, 1, '') AS Column2
FROM
    YourTable t1
GROUP BY Column1

检查链接了解更多详情。

于 2013-04-10T05:03:03.143 回答