sql >> Databáze >  >> RDS >> Oracle

Spojení více řádků do jednoho řádku bez agregace [Oracle]

Pokud víte, že máte tři sloupce, vyjmenujte je a agregujte:

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;

Pokud neznáte počet vracených sloupců, musíte použít dynamické SQL (execute immediate ).




  1. Co je databáze? A DBMS?

  2. Mohu nastavit Mysql na automatické rozdělení?

  3. Jak mohu napsat úplný vyhledávací indexový dotaz, který nebude brát v úvahu žádná ignorovaná slova?

  4. Jak načíst data z databáze SQL Server v C#?