sql >> Database >  >> RDS >> Oracle

LISTAGG in Oracle om verschillende waarden te retourneren

19c en later:

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

18c en eerder:

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

Als je meer kolommen nodig hebt, is iets als dit misschien wat je zoekt:

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. UTF-8-tekens detecteren in een Latin1-gecodeerde kolom - MySQL

  2. Een string zoeken in databases van SQL Server

  3. Primaire sleutel voor automatische verhoging invoegen in bestaande tabel

  4. TSQL:een weergave maken die toegang heeft tot meerdere databases