sql >> データベース >  >> RDS >> Oracle

Oracle GROUP_CONCAT()と同等

    一部の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で機能してください。


    1. Oracle Database 21c

    2. ASP.NETはSqlConnectionを使用してMySQLを接続します

    3. PentahoDataIntegrationおよびBAServerツールへのMicrosoftSQLServerJDBCドライバーのインストール

    4. 明示的なANSIJOINと暗黙的な結合の使用に関するOracleの公式推奨事項はありますか?