Zusammenfassung: In diesem Tutorial lernen Sie, wie Sie die Oracle UNPIVOT
-Klausel verwenden, um Spalten in Zeilen zu transponieren.
Einführung in die Oracle UNPIVOT-Klausel
Mit der Oracle UNPIVOT
-Klausel können Sie Spalten in Zeilen transponieren. Die UNPIVOT
-Klausel ist das Gegenteil der PIVOT
-Klausel, mit dem Unterschied, dass sie die Daten während des Transpositionsprozesses nicht deaggregiert.
Im Folgenden wird die Syntax der Oracle UNPIVOT
-Klausel veranschaulicht:
In dieser Syntax:
- Mit
unpivot_clause
können Sie einen Namen für eine Spalte angeben, die die unpivotierten Messwerte darstellt. - Mit der
unpivot_for_clause
können Sie den Namen für jede Spalte angeben, die die Werte der Kennzahl enthält. - Die
unpivot_in_clause
enthält die geschwenkten Spalten, die nicht geschwenkt werden.
Mit der INCLUDE | EXCLUDE NULLS
-Klausel können Sie Zeilen mit Nullwerten ein- oder ausschließen.
- Die
INCLUDE NULLS
-Klausel weist Oracle an, nullwertige Zeilen einzuschließen. - Die
EXCLUDE NULLS
-Klausel hingegen eliminiert nullwertige Zeilen aus der zurückgegebenen Ergebnismenge.
Standardmäßig schließt die Unpivot-Operation nullwertige Zeilen aus.
Lassen Sie uns einige Beispiele für die Verwendung der Oracle UNPIVOT
-Klausel nehmen, um ein besseres Verständnis zu bekommen.
Einrichten einer Beispieltabelle
Erstellen Sie zunächst eine neue Tabelle namens sale_stats
zur Demonstration:
Zweitens, fügen Sie einige Zeilen in die Tabelle sale_stats
ein:
Drittens, fragen Sie Daten aus der Tabelle sale_stats
ab:
Hier ist die Ausgabe:
Oracle UNPIVOT Beispiele
Diese Anweisung verwendet die UNPIVOT
Klausel, um die Spalten product_a
, product_b
und product_c
in Zeilen zu drehen:
In diesem Beispiel:
Die unpivot_clause
ist quantity
, eine Spalte, die die unpivotierten Werte aus den Spalten product_a
, product_b
und product_c
darstellt.
Das unpivot_for_clause
ist FOR product_code
, die Spalte, die die Werte der Kennzahl enthält.
Die unpivot_in_clause
-Klausel ist:
, die Oracle anweist, die Werte in den Spalten product_a
, product_b
und product_c
zu entpivotieren.
Das folgende Bild zeigt die Ausgabe:
Standardmäßig schließt die UNPIVOT
Operation nullwertige Zeilen aus, daher sehen Sie keine NULL in der Ausgabe.
Das folgende Beispiel verwendet die UNPIVOT
-Klausel, um Werte in den Spalten product_a
, product_b
und product_c
in Zeilen zu transponieren, aber einschließlich nullwertiger Zeilen:
Hier ist die Ausgabe:
Oracle unpivot multiple columns
Lassen Sie uns ein Beispiel für das Unpivotieren mehrerer Spalten sehen.
Erstens, löschen Sie die Tabelle sale_stats
und erstellen Sie sie neu:
Zweitens, fügen Sie Zeilen in die Tabelle sale_stats
ein:
Drittens, fragen Sie Daten aus der Tabelle sale_stats
ab:
Schließlich verwenden Sie die Klausel UNPIVOT
, um die Werte in den Spalten a_qty
, a_value
, b_qty
und b_value
in Zeilen zu transponieren:
Hier ist die Ergebnismenge:
Dieses Bild veranschaulicht den Transponierungsprozess:
In diesem Tutorial haben Sie gelernt, wie Sie die Oracle UNPIVOT
-Klausel zum Transponieren von Spalten in Zeilen verwenden.
- War dieses Tutorial hilfreich?
- JaNein