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

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

Patricia Arquette
リリース: 2025-01-21 06:51:12
オリジナル
1033 人が閲覧しました

How to Concatenate Multiple SQL Rows into a Single Comma-Delimited Column?

複数の行を単一のカンマ区切りフィールドに結合するための SQL テクニック

複数行のデータをコンマで区切って 1 つの列に集約することは、データ操作において頻繁に必要となる要件です。 このガイドでは、Microsoft SQL Server 2005 以降に焦点を当てて、SQL を使用してこの連結を実現する方法を説明します。

SQL Server ソリューションは次のとおりです:

<code class="language-sql">SELECT t.TicketID,
       STUFF(ISNULL((SELECT ', ' + x.Person
                FROM @Tickets x
               WHERE x.TicketID = t.TicketID
            GROUP BY x.Person
             FOR XML PATH (''), TYPE).value('.','VARCHAR(max)'), ''), 1, 2, '') AS ConcatenatedPersons
  FROM @Tickets t
GROUP BY t.TicketID</code>
ログイン後にコピー

このアプローチでは、STUFF 関数を使用して、連結された文字列から先頭のカンマを効率的に削除します。 ネストされたクエリは、FOR XML PATH を利用して、各 Person に関連付けられた個々の TicketID 値からカンマ区切りのリストを作成します。 ISNULL 関数は、特定のチケット ID に関連付けられている人物がいない場合を処理します。 結果は、各チケットの人物のカンマ区切りリストを含む 1 つの列 (ConcatenatedPersons) になります。 この方法は、SQL Server 内で目的の連結を実現するクリーンかつ効率的な方法を提供します。 最適な結果を得るには、この手法を特定のテーブル名と列名に適用してください。

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

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