Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Pivot / Crosstab Query di Oracle 10g (Nomor kolom dinamis)

Oracle 11g adalah yang pertama mendukung PIVOT/UNPIVOT, jadi Anda harus menggunakan:

  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

Anda dapat menggunakan DECODE, tetapi CASE telah didukung sejak 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. pilih * dari table_name di mana kolom seperti ' '

  2. Oracle Database BLOB ke InputStream di Jawa?

  3. Oracle SQL:Memfilter oleh ROWNUM tidak mengembalikan hasil ketika seharusnya

  4. Bagaimana cara menghapus kumpulan koneksi ODP.NET pada kesalahan koneksi?

  5. Bisakah saya mengelompokkan dalam kueri SQL dengan fungsi jendela?