ホームページ > データベース > mysql チュートリアル > SQL Serverで複数の行を単一のカンマ区切り文字列に連結するにはどうすればよいですか?

SQL Serverで複数の行を単一のカンマ区切り文字列に連結するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-07 21:12:41
オリジナル
257 人が閲覧しました

How to Concatenate Multiple Rows into a Single Comma-Separated String in SQL Server?

SQL Server で複数の行を単一のカンマ区切り文字列に効率的に結合する

SQL Server では、特に結果をグループ化する場合に、複数の行のデータを単一のカンマ区切りの文字列に集約する必要があることがよくあります。 これは、レポート作成とデータ表示の一般的なタスクです。 これを実現する強力な方法は、FOR XML PATH コンストラクトを利用することです。

「ID」列と「Value」列を含むテーブルを調べてみましょう:

ID Value
1 a
1 b
2 c

次の SQL クエリは、一意の Value ごとに ID エントリをカンマ区切りの文字列に効率的に連結します。

<code class="language-sql">SELECT 
    ID, 
    STUFF((SELECT ', ' + Value
           FROM YourTable t2
           WHERE t1.ID = t2.ID
           FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 2, '') AS Values
FROM
    YourTable t1
GROUP BY
    ID;</code>
ログイン後にコピー

このクエリは、FOR XML PATH('') を含むサブクエリを使用して値を連結します。 .value('.', 'NVARCHAR(MAX)') メソッドは、XML 結果を文字列に変換します。 STUFF は、先頭のカンマとスペースを削除します。

出力は次のようになります:

ID Values
1 a, b
2 c

このアプローチは、SQL Server でカンマ区切りの集計値を生成するクリーンかつ効率的な方法を提供し、データの可読性と使いやすさを向上させます。

以上がSQL Serverで複数の行を単一のカンマ区切り文字列に連結するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート