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

Sammenføjning af flere rækker til en enkelt række uden aggregering [Oracle]

Hvis du ved, at du har tre kolonner, skal du opregne dem og samle:

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;

Hvis du ikke kender antallet af kolonner, der returneres, skal du bruge dynamisk SQL (execute immediate ).




  1. MySQL:hvordan forespørger man forældre-barn?

  2. Kan ikke slippe tabel, der lige er oprettet

  3. Hvordan kan jeg modtage en e-mail, når min MySQL-tabel er opdateret?

  4. Hvordan reparerer man en serialiseret streng, der er blevet beskadiget af en forkert bytetællingslængde?