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

Свързване на множество редове в един ред без агрегиране [Oracle]

Ако знаете, че имате три колони, избройте ги и обобщете:

select max(case when seqnum = 1 then type end) as type1,
       max(case when seqnum = 1 then date end) as date1,
       max(case when seqnum = 1 then amount end) as amount1,
       max(case when seqnum = 2 then type end) as type2,
       max(case when seqnum = 2 then date end) as date2,
       max(case when seqnum = 2 then amount end) as amount2,
       max(case when seqnum = 3 then type end) as type3,
       max(case when seqnum = 3 then date end) as date3,
       max(case when seqnum = 3 then amount end) as amount3       
from (select t.*, rownum as seqnum
      from t
     ) t;

Ако не знаете броя на колоните, които се връщат, тогава трябва да използвате динамичен SQL (execute immediate ).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Мога ли да съхранявам двоичен низ в колона CLOB

  2. Защо променливата на oracle plsql varchar2 се нуждае от размер, но параметърът не?

  3. Оракул. Как да изведем дата и час?

  4. PL SQL:Как да покажа наносекунди от TIMESTAMP

  5. SQL за игнориране на редове, които имат определено свойство от обединена таблица