Oracle UNPIVOT

Podsumowanie: w tym poradniku dowiesz się, jak używać klauzuli Oracle UNPIVOT do transpozycji kolumn do wierszy.

Wprowadzenie do klauzuli Oracle UNPIVOT

Klauzula Oracle UNPIVOT pozwala na transpozycję kolumn do wierszy. Klauzula UNPIVOT jest odwrotna do klauzuli PIVOT z tym wyjątkiem, że nie deagreguje danych podczas procesu transpozycji.

Oracle UNPIVOT

Następująca ilustracja przedstawia składnię klauzuli Oracle UNPIVOT:

W tej składni:

  • Klauzula unpivot_clause umożliwia określenie nazwy kolumny reprezentującej niepodzielone wartości miary.
  • Klauzula unpivot_for_clause umożliwia określenie nazwy dla każdej kolumny, która będzie przechowywać wartości miary.
  • Klauzula unpivot_in_clause zawiera kolumny przestawne, które nie będą przestawiane.

Klauzula INCLUDE | EXCLUDE NULLS umożliwia uwzględnienie lub wykluczenie wierszy o wartości zerowej.

  • Klauzula INCLUDE NULLS instruuje Oracle, aby uwzględniał wiersze o wartości zerowej.
  • Klauzula EXCLUDE NULLS natomiast eliminuje wiersze o wartości zerowej ze zwracanego zbioru wyników.

Domyślnie operacja unpivot wyklucza wiersze null-valued.

Zróbmy kilka przykładów użycia klauzuli Oracle UNPIVOT, aby lepiej ją zrozumieć.

Ustawianie przykładowej tabeli

Po pierwsze, utwórz nową tabelę o nazwie sale_stats w celach demonstracyjnych:

Po drugie, wstaw kilka wierszy do tabeli sale_stats:

Po trzecie, wykonaj zapytanie o dane z tabeli sale_stats:

Oto dane wyjściowe:

oracle unpivot - przykładowa tabela

Oracle UNPIVOT examples

Ta instrukcja wykorzystuje klauzulę UNPIVOT do obrócenia kolumn product_a, product_b i product_c do wierszy:

W tym przykładzie:

Kolumna unpivot_clause to quantity, która jest kolumną reprezentującą niepodzielone wartości z kolumn product_a, product_b i product_c.

Klauzula unpivot_for_clause to FOR product_code, która jest kolumną przechowującą wartości miary.

Klauzula unpivot_in_clause to:

, która instruuje Oracle, aby niepodzielone wartości w kolumnach product_a, product_b i product_c.

Następujący rysunek przedstawia dane wyjściowe:

oracle unpivot - przykład

Domyślnie operacja UNPIVOT wyklucza wiersze o wartościach zerowych, dlatego w danych wyjściowych nie widać żadnych NULL.

Następujący przykład wykorzystuje klauzulę UNPIVOT do transpozycji wartości w kolumnach product_a, product_b i product_c do wierszy, ale z uwzględnieniem wierszy z wartością null:

Oto dane wyjściowe:

oracle unpivot include nulls example

Oracle unpivot multiple columns

Zobaczmy przykład unpivotowania wielu kolumn.

Po pierwsze, upuść i ponownie utwórz tabelę sale_stats:

Po drugie, wstaw wiersze do tabeli sale_stats:

Po trzecie, odpytaj dane z tabeli sale_stats:

Na koniec użyj klauzuli UNPIVOT, aby przetransponować wartości w kolumnie a_qty, a_value, b_qty i b_value do wierszy:

Here is the result set:

oracle unpivot multiple columns example

Ten obrazek ilustruje proces transpozycji:

Oracle unpivot multiple columns

W tym samouczku dowiedziałeś się, jak używać klauzuli Oracle UNPIVOT do transponowania kolumn do wierszy.

  • Czy ten kurs był pomocny?
  • TakNie

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.