Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengubah Baris menjadi Lajur dalam Oracle Menggunakan DECODE dan PIVOT?

Bagaimana untuk Mengubah Baris menjadi Lajur dalam Oracle Menggunakan DECODE dan PIVOT?

Susan Sarandon
Susan Sarandonasal
2024-12-31 15:54:21584semak imbas

How to Transform Rows into Columns in Oracle Using DECODE and PIVOT?

Cara Menukar Baris kepada Lajur dalam Oracle

Dalam Oracle, anda boleh menghadapi senario di mana data disusun dalam baris tetapi ia perlu dipaparkan dalam gaya kolumnar. Artikel ini menyelidiki kaedah untuk menukar baris kepada lajur menggunakan fungsi DECODE atau klausa PIVOT.

Pertimbangkan jadual berikut yang mengandungi butiran pinjaman:

LOAN NUMBER   DOCUMENT_TYPE                DOCUMENT_ID
992452533663  Voters ID                    XPD0355636
992452533663  Pan card                     CHXPS5522D
992452533663  Drivers license              DL-0420110141769

Untuk memutar baris ke dalam lajur, anda boleh 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 license', document_id)) AS drivers_licence
  FROM
    doc_tab
GROUP BY loan_number
ORDER BY loan_number;

Pertanyaan ini akan menghasilkan perkara berikut output:

LOAN_NUMBER   VOTERS_ID            PAN_CARD             DRIVERS_LICENCE    
------------- -------------------- -------------------- --------------------
992452533663  XPD0355636           CHXPS5522D           DL-0420110141769     

Dalam Oracle versi 11g dan ke atas, klausa PIVOT menyediakan cara yang lebih mudah untuk mencapai hasil yang sama:

SELECT *
  FROM doc_tab
PIVOT (
  MAX(document_id) FOR document_type IN ('Voters ID','Pan card','Drivers license')
);

Kedua-dua kaedah boleh memaksi baris ke dalam lajur dengan berkesan, membenarkan anda untuk memanipulasi dan memaparkan data anda dalam format pilihan.

Atas ialah kandungan terperinci Bagaimana untuk Mengubah Baris menjadi Lajur dalam Oracle Menggunakan DECODE dan 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