Oracle UNPIVOT

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.

Oracle UNPIVOT

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 - Beispieltabelle

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:

Oracle unpivot - example

Standardmäßig schließt die UNPIVOTOperation 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 include nulls example

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:

Oracle unpivot multiple columns example

Dieses Bild veranschaulicht den Transponierungsprozess:

Oracle unpivot multiple columns

In diesem Tutorial haben Sie gelernt, wie Sie die Oracle UNPIVOT-Klausel zum Transponieren von Spalten in Zeilen verwenden.

  • War dieses Tutorial hilfreich?
  • JaNein

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.