ホームページ >データベース >mysql チュートリアル >LISTAGG を使用して DB2 で列値のカンマ区切りリストを作成するにはどうすればよいですか?

LISTAGG を使用して DB2 で列値のカンマ区切りリストを作成するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-09 14:46:42932ブラウズ

How Can I Create Comma-Separated Lists of Column Values in DB2 Using LISTAGG?

LISTAGG を使用した DB2 SQL でのカンマ区切りリストの生成

DB2 LISTAGG 関数は、特にグループ化されたデータを扱う場合に、列値のカンマ区切りリストの作成を簡素化します。この関数は、カスタム区切り文字を使用して、同じグループ化基準を共有する行の指定された列の値を効率的に連結します。

ID 列と Role 列を含むテーブルで説明します。ID には複数の関連する Role 値が含まれる可能性があります。 一意の ID ごとにロールのカンマ区切りのリストを生成するには、次の SQL クエリを使用します。

<code class="language-sql">SELECT
  ID,
  LISTAGG(Role, ', ') WITHIN GROUP (ORDER BY Role ASC) AS Roles
FROM
  myTable
GROUP BY
  ID;</code>

データ例:

<code>ID   | Role
------------
4555 | 2
4555 | 3
4555 | 4</code>

結果:

<code>ID   | Roles
------------
4555 | 2, 3, 4</code>

ORDER BY 内の LISTAGG 句は、連結された値の順序を制御します。 ORDER BY Role ASC はそれらを昇順に配置します。 ORDER BY Role DESC は降順に並べます。 ORDER BY を省略すると、順序は不定になります。

以上がLISTAGG を使用して DB2 で列値のカンマ区切りリストを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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