sql >> Databasteknik >  >> RDS >> Oracle

Sammanfoga flera rader till en enda rad utan aggregering [Oracle]

Om du vet att du har tre kolumner, räkna upp dem och sammanställ:

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;

Om du inte vet antalet kolumner som returneras måste du använda dynamisk SQL (execute immediate ).




  1. Postgres - den senaste versionen 0.14.0 av pg gem ger fel

  2. Betydelse av Välj tabeller optimerade bort i MySQL Explain plan

  3. Bästa sättet att välja slumpmässiga rader PostgreSQL

  4. Oracles semantik lagrade procedurer/funktioner i ett transaktionssammanhang