DB2 のグループごとにカンマ区切りの出力を生成します
DB2 組み込み関数 LISTAGG
は、同じグループ化の列値をカンマで区切って連結できます。これは、グループ内のデータを結合する必要がある場合に便利です。
たとえば、テーブルに ID と Role の 2 つの列が含まれており、3 つの行の ID は同じですが、Role 値が異なるとします。目標は、各 ID のロール値をカンマ区切りのリストに連結することです。
DB2 LUW 9.7 以降で導入された LISTAGG
関数は、これを実現します。
SELECT ID, LISTAGG(Role, ', ') AS Roles FROM myTable GROUP BY ID;
このクエリは目的の出力を生成します:
<code>ID Roles ---------- 4555 2,3,4</code>
WITHIN GROUP
句と ORDER BY
ステートメントを使用して、値を連結する順序を指定できることに注意してください。これにより、値がリストされる順序をより細かく制御できるようになります:
SELECT ID, LISTAGG(Role, ', ') WITHIN GROUP (ORDER BY Role ASC) AS Roles FROM myTable GROUP BY ID;
この場合、出力は次のようになります:
<code>ID Roles ---------- 4555 2,3,4</code>
LISTAGG
DB2 でデータを集約および結合する便利な方法を提供し、効率的なグループベースの文字列操作を可能にします。
以上がDB2 のグループから値のカンマ区切りリストを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。