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

Wie kann ich in Oracle Zeilen dynamisch in Spalten umwandeln?

Linda Hamilton
Freigeben: 2025-01-06 14:14:46
Original
624 Leute haben es durchsucht

How Can I Dynamically Pivot Rows into Columns in Oracle?

Dynamisches Pivotieren in Oracle: Zeilen in Spalten umwandeln

Dieser Artikel befasst sich mit der Herausforderung des dynamischen Pivotierens von Zeilen in Spalten in Oracle. Diese Technik ermöglicht die Umwandlung von Daten, bei denen Schlüssel und Werte in Zeilen gespeichert sind, in ein Tabellenformat mit Spalten, die die Schlüssel und Zeilen, die die Werte darstellen.

Das Problem

Bei einer Tabelle mit einer ID als Primärschlüssel, Schlüsseln (K) und Werten (V) besteht das Ziel darin, eine Pivot-Tabelle mit so vielen Spalten zu erstellen, wie in der Originaltabelle eindeutige Schlüssel vorhanden sind. Die Abfrage sollte in der Lage sein, unbekannte Spaltennamen zu verarbeiten, die dynamisch entstehen können.

Oracle 11g-Lösung

Oracle 11g bietet die PIVOT-Operation, die diese Anforderung erfüllt. Die folgende Abfrage demonstriert ihre Verwendung:

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

Oracle XML Pivot Option (Oracle 11g)

Für Szenarien, in denen die Spaltenüberschriften unbekannt sind, stellt Oracle eine Pivot-XML bereit Option, wie in der Abfrage zu sehen unten:

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

Bearbeiten:

An der Abfrage wurden Änderungen vorgenommen, um Werte zu aggregieren und die IN-Klausel einzuschließen, wie in den Kommentaren erwähnt. Die Angabe von Werten in der IN-Klausel beeinträchtigt jedoch den dynamischen Charakter der Abfrage.

Das obige ist der detaillierte Inhalt vonWie kann ich 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