ホームページ >データベース >mysql チュートリアル >SQL でデータをグループ化し、カンマ区切りを使用して値を連結する方法

SQL でデータをグループ化し、カンマ区切りを使用して値を連結する方法

Susan Sarandon
Susan Sarandonオリジナル
2025-01-07 19:56:41734ブラウズ

How to Group Data and Concatenate Values with Comma Separators in SQL?

コンマ区切り文字を使用した SQL のグループ化と連結

このガイドでは、データをグループ化し、カンマ区切りを使用して集計値を連結する SQL クエリの作成方法を説明します。 次のようなテーブルを想像してください:

<code>| ID | Value |
|-----|-------|
| 1   | a     |
| 1   | b     |
| 2   | c     |</code>

目標は、同じ ID の値が単一のカンマ区切り文字列に結合された結果セットを生成することです。

<code>| ID | Value |
|-----|-------|
| 1   | a,b   |
| 2   | c     |</code>

FOR XML PATH を使用した解決策:

FOR XML PATH 構造は、これを達成するための効率的な方法を提供します。

<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>

STUFF 関数は、SELECT ステートメントによって追加された先頭のカンマとスペースを削除します。 一般に、このアプローチはパフォーマンスと読みやすさの点で好まれます。

さらに読む:

より高度なシナリオと代替手法については、次のリソースを参照してください。

  • スタック オーバーフロー: 同様の連結の課題について議論している関連するスタック オーバーフロー スレッド (「連結による SQL グループ」を検索)。
  • SQL Server ドキュメント: FOR XML PATH および関連機能の詳細については、Microsoft の公式ドキュメントを参照してください。

この改訂された回答では、明確さが向上し、より簡潔な説明が提供され、さらなる学習に役立つリンクが提供されています。 画像は元の位置に残ります。

以上がSQL でデータをグループ化し、カンマ区切りを使用して値を連結する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。