Oracleでは、LISTAGG()
を使用できます。 クエリ結果をコンマ区切りのリストに変換する関数。
したがって、各値が別々の行に出力される代わりに、すべての値がコンマ(または選択した他の区切り文字)で区切られた単一の行に出力されます。
例
次のクエリを実行するとします。
SELECT last_name
FROM employees
WHERE job_id = 'IT_PROG';
結果:
LAST_NAME ____________ Hunold Ernst Austin Pataballa Lorentz
そのクエリは、それぞれ異なる値を持つ5つの行を返しました。
これらの値を単一の行に出力する場合は、次のように実行できます。
SELECT LISTAGG(last_name, ', ')
FROM employees
WHERE job_id = 'IT_PROG';
結果:
LISTAGG(LAST_NAME,',') ____________________________________________ Hunold, Ernst, Austin, Pataballa, Lorentz
列名をLISTAGG()
に渡すだけでした 関数、および選択した区切り文字。
別の区切り文字を使用することも、その引数を完全に省略してすべての項目を連結することもできます。
この関数は、DISTINCT
も受け入れます。 句(重複する値を削除するため)、およびORDER BY
句(関数の出力を順序付けるため)。
この関数は、クエリ結果をグループ化するときにも非常に便利です。
LISTAGG()
を参照してください その他の例については、Oracleで機能してください。