ホームページ >データベース >mysql チュートリアル >DB2 SQL でグループ化されたデータからカンマ区切り値を生成するにはどうすればよいですか?
DB2 SQL グループ化データはカンマ区切り値を生成します
質問: DB2 SQL には、グループ化された列データのカンマ区切り値を直接生成できる関数はありますか?
シナリオ: ID 列とロール列を持つテーブルがあります。同じ ID に複数の行があり、各行がその ID の異なる役割を表す場合があります。目標は、これらのロールを一意の ID ごとにカンマ区切りの文字列に連結することです。
例:
<code>ID | Role ------------ 4555 | 2 4555 | 3 4555 | 4</code>
期待される出力:
<code>4555 2,3,4</code>
答え:
DB2 LUW 9.7 では、この問題を解決する新しい関数 LITAGG が導入されています。
文法:
<code>LISTAGG(expression, delimiter) WITHIN GROUP (ORDER BY expression ASC|DESC)</code>
手順:
使用法:
各一意の ID のカンマ区切りのロール値を取得するには、次のクエリを使用できます:
<code>SELECT id, LISTAGG(role, ', ') WITHIN GROUP (ORDER BY role ASC) AS roles FROM myTable GROUP BY id;</code>
出力:
<code>ID | roles ------------ 4555 | 2,3,4</code>
追加メモ:
以上がDB2 SQL でグループ化されたデータからカンマ区切り値を生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。