Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Consulta Pivot/Crosstab no Oracle 10g (Número da coluna dinâmica)


O Oracle 11g é o primeiro a suportar PIVOT/UNPIVOT, então você deve usar:
  SELECT t.username,
         MAX(CASE WHEN t.product = 'Chair' THEN t.numberpurchases ELSE NULL END) AS chair,
         MAX(CASE WHEN t.product = 'Table' THEN t.numberpurchases ELSE NULL END) AS tbl,
         MAX(CASE WHEN t.product = 'Bed' THEN t.numberpurchases ELSE NULL END) AS bed
    FROM TABLE t
GROUP BY t.username

Você pode usar DECODE, mas CASE tem suporte desde 9i.