Heim >Datenbank >MySQL-Tutorial >Wie kann man Zeilen in Oracle effizient in Spalten umwandeln?
Stehen Sie vor der Herausforderung, Tabellendaten mit mehreren Zeilen und Spalten in eine besser lesbare Spaltenstruktur umzuwandeln? Die Oracle-Datenbank bietet leistungsstarke Techniken, um diese Aufgabe zu vereinfachen.
Angenommen, Sie haben eine Tabelle mit Kreditinformationen und Dokumenten, wie zum Beispiel:
LOAN NUMBER | DOCUMENT_TYPE | DOCUMENT_ID ------------------------------------------ 992452533663 | Voters ID | XPD0355636 992452533663 | Pan card | CHXPS5522D 992452533663 | Drivers licence | DL-0420110141769
Sie können diese Zeilen in strukturierte Spalten umwandeln Nutzen Sie die DECODE-Funktion in Oracle 10g oder die in Oracle 11g eingeführte PIVOT-Klausel.
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;
Diese Abfrage verwendet die DECODE-Funktion, um den gewünschten Spalten basierend auf bestimmten Dokumenttypen Werte zuzuweisen. Die MAX-Funktion gibt dann die passende Dokument-ID für jede Spalte zurück.
SELECT * FROM doc_tab PIVOT ( MAX(document_id) FOR document_type IN ('Voters ID','Pan card','Drivers licence') );
Die PIVOT-Klausel richtet die Dokumenttypen als Spalten aus und platziert die entsprechenden Dokument-IDs darin die entsprechenden Zellen.
Durch den Einsatz dieser Techniken können Sie Ihre Daten effizient in ein spaltenorientierteres Layout umwandeln und so das Verständnis erleichtern und weiter analysieren.
Das obige ist der detaillierte Inhalt vonWie kann man Zeilen in Oracle effizient in Spalten umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!