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

個別の値を返すOracleのLISTAGG

    19c以降:

    select listagg(distinct the_column, ',') within group (order by the_column)
    from the_table
    

    18c以前:

    select listagg(the_column, ',') within group (order by the_column)
    from (
       select distinct the_column 
       from the_table
    ) t
    

    より多くの列が必要な場合は、次のようなものを探している可能性があります:

    select col1, listagg(col2, ',') within group (order by col2)
    from (
      select col1, 
             col2,
             row_number() over (partition by col1, col2 order by col1) as rn
      from foo
      order by col1,col2
    )
    where rn = 1
    group by col1;
    


    1. MariaDBでのMONTH()のしくみ

    2. Oracleストアドプロシージャの例のテーブルタイプ

    3. SQL Server Management Studioで複合キーを作成するにはどうすればよいですか?

    4. T-SQLPRINTステートメントの概要