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

Извлечете различни стойности с LISTAGG в Oracle 12C

Ще ви е необходима допълнителна стъпка:първо намерете отделни стойности, след което ги обобщете. Например:

SQL> with test (id, col) as
  2    (select 1, 'x' from dual union all
  3     select 1, 'x' from dual union all
  4     --
  5     select 2, 'w' from dual union all
  6     select 2, 't' from dual union all
  7     select 2, 'w' from dual union all
  8     --
  9     select 3, 'i' from dual
 10    ),
 11  -- first find distinct values ...
 12  temp as
 13    (select distinct id, col from test)
 14  -- ... then aggregate them
 15  select id,
 16         listagg(col, ';') within group (order by col) result
 17  from temp
 18  group by id;

        ID RESULT
---------- ----------
         1 x
         2 t;w
         3 i

SQL>



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Създайте изглед с 365 дни

  2. ResultSet.getString() в колона VARCHAR2 връща празен низ

  3. Прилагане на филтър в Oracle View

  4. „ORA-00942:таблица или изглед не съществува“ само когато се изпълнява в съхранена процедура

  5. Как мога да комбинирам няколко реда в списък, разделен със запетая в Oracle?