sql >> Database teknologi >  >> RDS >> Oracle

Sammenkæd og grupper flere rækker i Oracle

Overvej at bruge LISTAGG-funktionen, hvis du er på 11g:

select grp, listagg(name,',') within group( order by name ) 
  from name_table group by grp

sqlFiddle

upd: Hvis du ikke er det, så overvej at bruge analyser:

select grp,
    ltrim(max(sys_connect_by_path
       (name, ',' )), ',')
        scbp
  from (select name, grp,
            row_number() over
           (partition by grp
            order by name) rn
         from tab
          )
start with rn = 1
connect by prior rn = rn-1
and prior grp = grp
  group by grp
  order by grp

sqlFiddle




  1. Sådan installeres Haproxy og Keepalved

  2. Sådan listes alle databaser ved hjælp af PostgreSQL

  3. Brug af udtryk til at filtrere data i databasen

  4. Fjerner duplikerede rækker fra tabellen i Oracle