Tukar Baris kepada Lajur dalam Oracle: Memanfaatkan DECODE dan PIVOT
Masalah:
Transform jadual dengan baris yang mewakili berbilang jenis dokumen dan ID yang dikaitkan dengan nombor pinjaman ke dalam format lajur. Jadual yang terhasil hendaklah mempunyai satu baris untuk setiap nombor pinjaman, dengan lajur untuk setiap jenis dokumen dan ID yang sepadan.
Contoh:
Jadual Input:
LOAN NUMBER | DOCUMENT_TYPE | DOCUMENT_ID |
---|---|---|
992452533663 | Voters ID | XPD0355636 |
992452533663 | Pan card | CHXPS5522D |
992452533663 | Drivers licence | DL-0420110141769 |
Output yang Diingini:
LOAN NUMBER | VOTERS_ID | PAN_CARD | DRIVERS LICENCE |
---|---|---|---|
992452533663 | XPD0355636 | CHXPS5522D | DL-0420110141769 |
Oracle Penyelesaian:
Kaedah DEKOD:
SELECT loan_number, MAX(DECODE(document_type, 'Voters ID', document_id)) AS voters_id, MAX(DECODE(document_type, 'Pan card', document_id)) AS pan_card, MAX(DECODE(document_type, 'Drivers licence', document_id)) AS drivers_licence FROM input_table GROUP BY loan_number ORDER BY loan_number;
Klausa PIVOT (Oracle 11g ):
SELECT * FROM input_table PIVOT ( MAX(document_id) FOR document_type IN ('Voters ID','Pan card','Drivers licence') );
Kedua-dua kaedah secara berkesan mengubah baris ke dalam lajur, mencapai hasil yang diinginkan. Terokai pautan yang dirujuk untuk mendapatkan butiran tambahan tentang Oracle DECODE dan PIVOT.
Atas ialah kandungan terperinci Bagaimana untuk Menukar Baris ke Lajur dalam Oracle Menggunakan DECODE dan PIVOT?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!