1

SQL Server 2008 で、2 列の異なるデータを次の形式で表示するビューを設計しました。

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

ビューに、次のように連結された Column2 値を持つ個別の Column1 値のみを表示するには、どうすればよいですか。

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

詳しくはLINKをご覧ください。

于 2013-04-10T05:03:03.143 に答える