Heim >Datenbank >MySQL-Tutorial >Wie kann man Zeilen in Oracle effizient in Spalten umwandeln?

Wie kann man Zeilen in Oracle effizient in Spalten umwandeln?

DDD
DDDOriginal
2025-01-04 21:27:40424Durchsuche

How to Efficiently Transform Rows into Columns in Oracle?

So konvertieren Sie Zeilen in Spalten in Oracle

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.

DECODE-Funktion (Oracle 10g)

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.

PIVOT-Klausel (Oracle 11g)

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!

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