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

Řádky do sloupce v ORACLE

select name,id, 
 max(case when groupa = 'A' then groupa end) as group1,
  max(case when groupa = 'B' then groupa end) as group2,
  max( case when groupa = 'C' then groupa end) as group3
   from tablename
   group by name, id

pokud je počet skupin pevný, bude výše uvedený dotaz fungovat.

Upravit:Pomocí pivotu

 select * from
  (select name, id , groupa from tablename)
  pivot xml (
  max(groupa) for groupa in
   (select distinct groupa from tablename)
   )

Díky za řešení. už jsem skoro tam. To je to, co dostanu po spuštění tohoto dotazu. Ve skutečnosti existuje 53 různých SKUPIN, takže přidává 53 sloupců, ale maximální počet skupin přiřazených uživateli je 5.

NAME      ID      A      B      C     D      E      F      G      H
James     20      A      null   null  null   null   null   null   H
Michael   30      A      B      null  null   E      null   null   null

Jak dosáhnu takových výsledků...

NAME      ID      GROUP_1  GROUP_2  GROUP_3
James     20      A        H
Michael   30      A        B        E

Jak dostanu svůj výsledek, jak jsem uvedl v otázce? Díky,



  1. Jak získat data z databáze a zobrazit je ve formátu csv na webové stránce?

  2. Offline instalace MariaDB Cluster pro CentOS

  3. Nelze vytvořit zdroj dat pomocí mysql

  4. Nahrání souboru Ajax PHP