Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memutar Baris ke Lajur dengan Cekap dalam Oracle Menggunakan DECODE atau PIVOT?

Bagaimana untuk Memutar Baris ke Lajur dengan Cekap dalam Oracle Menggunakan DECODE atau PIVOT?

Linda Hamilton
Linda Hamiltonasal
2025-01-01 10:02:12628semak imbas

How to Efficiently Pivot Rows into Columns in Oracle Using DECODE or 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn