Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memutar Baris ke Lajur dengan Cekap dalam Oracle Menggunakan DECODE atau PIVOT?
Menukar Baris kepada Lajur dalam Oracle
Jadual data selalunya mengandungi maklumat yang tersebar merentas berbilang baris untuk entiti individu. Untuk meningkatkan kebolehbacaan dan analisis data, anda boleh menukar baris ini kepada lajur. Soalan ini menunjukkan kes penggunaan praktikal untuk menukar jadual dengan maklumat dokumen untuk nombor pinjaman tunggal kepada format yang lebih mesra pengguna.
Dalam Oracle, baris boleh dipangsi dengan cekap ke dalam lajur menggunakan fungsi DECODE atau PIVOT klausa. Mari kita terokai cara menggunakan kaedah ini untuk menyelesaikan masalah yang dikemukakan dalam soalan:
Menggunakan Fungsi DECODE
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 doc_tab GROUP BY loan_number ORDER BY loan_number;
Pertanyaan ini menggunakan fungsi DECODE untuk menetapkan nilai document_id ke lajur yang sesuai berdasarkan jenis_dokumen. Fungsi agregat MAX() digunakan untuk mendapatkan semula document_id terbaharu bagi setiap jenis dokumen.
Menggunakan Klausa PIVOT (tersedia dalam Oracle 11g )
SELECT * FROM doc_tab PIVOT ( MAX(document_id) FOR document_type IN ('Voters ID','Pan card','Drivers licence') );
Klausa PIVOT menyediakan cara yang lebih ringkas untuk memutar baris ke dalam lajur. Ia memerlukan penentuan fungsi pengagregatan (MAX dalam kes ini) dan lajur untuk dipangsi.
Kedua-dua pendekatan secara berkesan menukar baris menjadi lajur, memberikan paparan maklumat dokumen yang lebih intuitif dan teratur untuk setiap nombor pinjaman.
Atas ialah kandungan terperinci Bagaimana untuk Memutar Baris ke Lajur dengan Cekap dalam Oracle Menggunakan DECODE atau PIVOT?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!