一部のRDBMSにはGROUP_CONCAT()があります クエリ列を区切りリスト(たとえば、コンマ区切りのリスト)として返すことができる関数。 MySQLとMariaDBは、そのような機能を備えた2つです。
PostgreSQLとSQLServerには、STRING_AGG()と呼ばれる同様の関数があります。 。
一方、OracleにはLISTAGG()があります。 ほぼ同じこと(そしておそらくそれ以上)を行う関数。
つまり、LISTAGG()と言うことができます OracleのGROUP_CONCAT()です 同等です。
例
これは、OracleのLISTAGG()がどのように機能するかを示す基本的な例です。 機能は動作します:
SELECT LISTAGG(region_name, ',')
FROM regions; 結果:
LISTAGG(REGION_NAME,',') ______________________________________________ Europe,Americas,Asia,Middle East and Africa
この場合、区切り文字はカンマであると指定しました。
LISTAGG()を使用せずにクエリを実行するとどうなりますか。 機能:
SELECT region_name
FROM regions; 結果:
REGION_NAME _________________________ Europe Americas Asia Middle East and Africa
すべての値を含む1つのコンマ区切りの行ではなく、それぞれが個別の値を持つ4つの行を取得します。
LISTAGG() この関数を使用すると、結果を並べ替えて、一意の値のみを返すこともできます(DISTINCTを使用) 条項)など。
LISTAGG()を参照してください その他の例については、Oracleで機能してください。