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

Oracleでクエリ結果をコンマ区切りリストとして返す

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


    1. T-SQLを使用してSQLServerのテーブルの列権限を取得します:sp_column_privileges

    2. SELECTステートメントでのNOLOCKヒントの効果

    3. PL/SQLで任意の国の現在の現地時間を取得

    4. コマンドラインを介してLinux上のMySQLユーザーに権限を付与する