Zeilen in Spalten in Oracle konvertieren
Datentabellen enthalten häufig Informationen, die über mehrere Zeilen für einzelne Entitäten verteilt sind. Um die Lesbarkeit und Analyse der Daten zu verbessern, kann es von Vorteil sein, diese Zeilen in Spalten umzuwandeln. Diese Frage zeigt einen praktischen Anwendungsfall der Konvertierung einer Tabelle mit Dokumentinformationen für eine einzelne Kreditnummer in ein benutzerfreundlicheres Format.
In Oracle können Zeilen mithilfe der DECODE-Funktion oder des PIVOT effizient in Spalten umgewandelt werden Klausel. Lassen Sie uns untersuchen, wie Sie diese Methoden verwenden können, um das in der Frage dargestellte Problem zu lösen:
Verwenden der DECODE-Funktion
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 die zuzuweisen document_id-Wert in die entsprechende Spalte basierend auf document_type. Die Aggregatfunktion MAX() wird verwendet, um die aktuellste document_id für jeden Dokumenttyp abzurufen.
Verwendung der PIVOT-Klausel (verfügbar in Oracle 11g)
SELECT * FROM doc_tab PIVOT ( MAX(document_id) FOR document_type IN ('Voters ID','Pan card','Drivers licence') );
Die PIVOT-Klausel bietet eine präzisere Möglichkeit, die Zeilen in Spalten umzuwandeln. Es erfordert die Angabe der Aggregationsfunktion (in diesem Fall MAX) und der zu schwenkenden Spalten.
Beide Ansätze wandeln die Zeilen effektiv in Spalten um und bieten so eine intuitivere und organisiertere Ansicht der Dokumentinformationen für jede Kreditnummer.
Das obige ist der detaillierte Inhalt vonWie kann man Zeilen in Oracle mithilfe von DECODE oder PIVOT effizient in Spalten umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!