Oracle
 sql >> база данни >  >> RDS >> Oracle

Конкатениране и групиране на множество редове в Oracle

Помислете за използването на функцията LISTAGG, в случай че сте на 11g:

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

sqlFiddle

актуализация: В случай, че не сте, помислете за използването на анализи:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Активиране на SSL или TLS в Oracle Apps R12

  2. Какво е точно BLOB в контекста на СУБД

  3. Как да клонирате среда R12.2

  4. Софтуерни компании, които работят върху Oracle D2k, PLSQL Technologies в Нойда

  5. EF заявка към Oracle хвърля ORA-12704:несъответствие на набора от знаци