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

Wie kann man in Oracle Zeilen dynamisch in Spalten umwandeln?

Patricia Arquette
Freigeben: 2025-01-06 14:23:44
Original
432 Leute haben es durchsucht

How to Dynamically Pivot Rows into Columns in Oracle?

Dynamisches Pivotieren von Zeilen in Spalten in Oracle

Sie haben eine Tabelle mit Paaren von Schlüsseln und Werten in Oracle 10g und möchten diese in eine Tabelle mit Spalten für umwandeln Jeder eindeutige Schlüssel mit dem entsprechenden Wert in jeder Zeile. Die resultierende Tabelle sollte sich dynamisch an alle neuen Schlüssel-Wert-Paare anpassen, die der ursprünglichen Tabelle hinzugefügt werden.

Oracle 11g-Lösung

Oracle 11g führt die PIVOT-Operation ein, die es Ihnen ermöglicht, eine solche dynamische Pivotierung durchzuführen:

select * from
(select id, k, v from _kv)
pivot(max(v) for k in ('name', 'age', 'gender', 'status'))
Nach dem Login kopieren

Diese Abfrage erstellt eine Tabelle mit Spalten für jeden der vier im IN angegebenen Schlüssel Klausel.

XML-Pivotoption

Oracle 11g bietet auch eine Pivot-XML-Option, mit der Sie unbekannte Spaltenüberschriften verarbeiten können:

select * from
(select id, k, v from _kv)
pivot xml(max(v) for k in (any))
Nach dem Login kopieren

Diese Abfrage erzeugt ein XML-Ergebnis festgelegt, wobei jede Spalte einem eindeutigen Schlüssel entspricht und der zugehörige Wert als XML-Element gespeichert wird Wert.

Hinweise:

  • Die bereitgestellten Lösungen gehen davon aus, dass die Werte für jeden Schlüssel aggregiert werden (maximal wird verwendet), aber Sie können die Aggregatfunktion nach Bedarf anpassen.
  • Es ist wichtig zu beachten, dass die Pivot-XML-Option zwar eine beliebige Anzahl unbekannter Spalten zulässt, jedoch die Angabe der Spalten in der IN-Klausel erfordert, was möglicherweise nicht immer der Fall ist machbar.

Das obige ist der detaillierte Inhalt vonWie kann man in Oracle Zeilen dynamisch in Spalten umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage