SQL ServerでのGROUP_CONCATの使用方法


  1. FOR XML PATHを使用する方法:

    SELECT Column1, STUFF((SELECT ', ' + Column2
                      FROM YourTable
                      WHERE YourTable.Column1 = t.Column1
                      FOR XML PATH('')), 1, 2, '') AS ConcatenatedValues
    FROM YourTable t
    GROUP BY Column1
  2. STRING_AGG関数を使用する方法 (SQL Server 2017以降):

    SELECT Column1, STRING_AGG(Column2, ', ') AS ConcatenatedValues
    FROM YourTable
    GROUP BY Column1
  3. COALESCE関数とサブクエリを使用する方法:

    SELECT t1.Column1,
       COALESCE((SELECT t2.Column2 + ', '
                 FROM YourTable t2
                 WHERE t2.Column1 = t1.Column1
                 FOR XML PATH('')), '') AS ConcatenatedValues
    FROM YourTable t1
    GROUP BY t1.Column1

これらの方法は、GROUP_CONCAT関数の代替として使用することができます。どの方法を選択するかは、使用するSQL Serverのバージョンやパフォーマンスの要件によって異なります。

以上が、SQL ServerでのGROUP_CONCATの使用方法とコード例の解説です。これらの方法を活用することで、データベースクエリにおいて複数の値を1つの列に結合することができます。