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

PIVOT Oracle - ubah beberapa data baris menjadi satu baris dengan banyak kolom, tanpa data agregat

Anda tidak melakukan apa pun dengan deskripsi, yang juga bervariasi dengan tag. Itu tidak diagregasi sehingga dalam 'grup menurut' implisit, jadi Anda mendapatkan baris terpisah di kumpulan hasil.

Anda juga dapat menangkapnya dengan agregat (dummy) lain:

select * from (
  select * from TEST2 where tag in ('LN', 'SN')
)
PIVOT
(
  max(value) as value, max(description) as description
  for tag in ('LN' as ln, 'SN' as sn)
)
order by category, subcat, item, "Date";

Date      SUBCAT CATEGOR IT LN_VALUE          LN_DESCRIPTION  SN_VALUE          SN_DESCRIPTION
--------- ------ ------- -- ----------------- --------------- ----------------- ---------------
24-OCT-13 290223 1219576 25 1105618           Lot Number      3x12mm            Serial Number  
24-OCT-13 290223 1219576 28 1303757           Lot Number                                       
18-JUN-15 354506 1219576 4  1403114           Lot Number                                       
18-JUN-15 354506 1219576 9  7777777777        Lot Number      9.999999999999E12 Serial Number  

Atau lebih mungkin mengecualikannya dari kumpulan hasil antara jika Anda tidak menginginkannya, dengan menentukan kolom yang Anda inginkan alih-alih menggunakan * :

select * from (
  select category, subcat, item, "Date", tag, value
  from TEST2 where tag in ('LN', 'SN')
)
PIVOT
(
  max(value) for tag in ('LN' as ln, 'SN' as sn)
)
order by category, subcat, item, "Date";

CATEGOR SUBCAT IT Date      LN                SN              
------- ------ -- --------- ----------------- -----------------
1219576 290223 25 24-OCT-13 1105618           3x12mm           
1219576 290223 28 24-OCT-13 1303757                            
1219576 354506 4  18-JUN-15 1403114                            
1219576 354506 9  18-JUN-15 7777777777        9.999999999999E12


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ODP.NET Managed - Tidak dapat menemukan .Net Framework Data Provider yang diminta

  2. ORA-01950:tidak ada hak istimewa pada tablespace 'USERS'

  3. Otorisasi hak istimewa Oracle SQL pada beberapa atribut dan tabel dengan satu pernyataan

  4. Oracle Data Mining (ODM) – Instalasi &Pengaturan

  5. Cara mereferensikan kunci utama komposit dalam SQL