Heim >Datenbank >MySQL-Tutorial >Wie wandele ich Zeilen in Oracle mit DECODE und PIVOT in Spalten um?

Wie wandele ich Zeilen in Oracle mit DECODE und PIVOT in Spalten um?

Susan Sarandon
Susan SarandonOriginal
2024-12-31 15:54:21584Durchsuche

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

So konvertieren Sie Zeilen in Spalten in Oracle

In Oracle können Sie mit Szenarien konfrontiert werden, in denen Daten in Zeilen angeordnet sind, dies aber sein muss säulenförmig angezeigt. Dieser Artikel befasst sich mit den Methoden zum Konvertieren von Zeilen in Spalten mithilfe der DECODE-Funktion oder der PIVOT-Klausel.

Betrachten Sie die folgende Tabelle mit Darlehensdetails:

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

Um die Zeilen in Spalten zu konvertieren, Sie können die DECODE-Funktion verwenden:

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;

Diese Abfrage erzeugt Folgendes Ausgabe:

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

In Oracle-Versionen 11g und höher bietet die PIVOT-Klausel eine einfachere Möglichkeit, das gleiche Ergebnis zu erzielen:

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

Beide Methoden können Zeilen effektiv in Spalten umwandeln, was Folgendes ermöglicht Sie können Ihre Daten im bevorzugten Format bearbeiten und anzeigen.

Das obige ist der detaillierte Inhalt vonWie wandele ich Zeilen in Oracle mit DECODE und PIVOT in Spalten um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn