我在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的修改后的代码很有效,非常感谢。
答案 0 :(得分: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
查看LINK了解详情。