Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Truy vấn Pivot / Crosstab trong Oracle 10g (Số cột động)

Oracle 11g là phần mềm đầu tiên hỗ trợ PIVOT / UNPIVOT, vì vậy bạn phải sử dụng:

  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

Bạn có thể sử dụng DECODE, nhưng CASE đã được hỗ trợ từ năm 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. Số nhận dạng ora-00972 quá dài oracle 10g

  2. Oracle- Kết nối bên ngoài bên trái trên nhiều bảng không trả về giá trị null mong muốn

  3. Sự khác biệt trong Oracle SQL:COUNT (*) so với Bộ kết quả thực tế

  4. Kết nối với DB oracle thông qua C

  5. ORA-12899, trong khi độ dài giá trị thực nhỏ hơn giá trị tối đa