Oracle
 sql >> база данни >  >> RDS >> Oracle

Pivot/Crosstab Query в Oracle 10g (Динамичен номер на колона)

Oracle 11g е първият, който поддържа PIVOT/UNPIVOT, така че трябва да използвате:

  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

Можете да използвате DECODE, но CASE се поддържа от 9i.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PL/SQL (Как да изчислим първия и последния ден на всяко тримесечие на всяка година)

  2. Регистриране на Oracle Java Съхранена процедура с помощта на Java Logging API (java.util.logging)

  3. Динамично изграждане на оператор за избор в Oracle 12c

  4. Как да агрегирам без да използвам `GROUP BY`?

  5. Подзаявката на Oracle не вижда променливата от външния блок 2 нива нагоре