Shrnutí: v tomto kurzu se naučíte používat klauzuli Oracle UNPIVOT
k transpozici sloupců na řádky.
Úvod do klauzule Oracle UNPIVOT
Klauzule Oracle UNPIVOT
umožňuje transponovat sloupce na řádky. Klauzule UNPIVOT
je opačná než klauzule PIVOT
s tím rozdílem, že při transponování nedochází k deagregaci dat.
Následující obrázek ilustruje syntaxi klauzule Oracle UNPIVOT
:
V této syntaxi:
- Klauzule
unpivot_clause
umožňuje zadat název sloupce, který představuje nepřevedené hodnoty míry. - Doložka
unpivot_for_clause
umožňuje zadat název pro každý sloupec, který bude obsahovat hodnoty míry. - Doložka
unpivot_in_clause
obsahuje otočené sloupce, které budou neotočené.
Doložka INCLUDE | EXCLUDE NULLS
umožňuje zahrnout nebo vyloučit řádky s nulovou hodnotou.
- Klausule
INCLUDE NULLS
dává společnosti Oracle pokyn k zahrnutí řádků s nulovou hodnotou. - Klausule
EXCLUDE NULLS
naopak řádky s nulovou hodnotou z vrácené výsledkové množiny vylučuje.
Ve výchozím nastavení operace rozbalení vylučuje řádky s nulovou hodnotou.
Podívejme se na několik příkladů použití klauzule Oracle UNPIVOT
, abychom ji lépe pochopili.
Nastavení ukázkové tabulky
Nejprve pro ukázku vytvořte novou tabulku s názvem sale_stats
:
Druhé, vložte do tabulky sale_stats
několik řádků:
Třetí, dotaz na data z tabulky sale_stats
:
Tady je výstup:
Oracle UNPIVOT examples
Tento příkaz používá klauzuli UNPIVOT
k otočení sloupců product_a
, product_b
a product_c
do řádků:
V tomto příkladu:
V unpivot_clause
je quantity
, což je sloupec, který představuje neotočené hodnoty ze sloupců product_a
, product_b
a product_c
.
Doložka unpivot_for_clause
je FOR product_code
, což je sloupec, který bude obsahovat hodnoty opatření.
Doložka unpivot_in_clause
je:
která dává společnosti Oracle pokyn, aby odvirovala hodnoty ve sloupcích product_a
, product_b
a product_c
.
Následující obrázek ukazuje výstup:
Ve výchozím nastavení operace UNPIVOT
vylučuje řádky s nulovými hodnotami, proto ve výstupu nevidíte žádné NULL.
Následující příklad používá klauzuli UNPIVOT
k transpozici hodnot ve sloupcích product_a
, product_b
a product_c
na řádky, ale včetně řádků s nulovou hodnotou:
Tady je výstup:
Oracle unpivot multiple columns
Podívejme se na příklad unpivotování více sloupců.
Nejprve zrušte a znovu vytvořte tabulku sale_stats
:
Druhé, vložte řádky do tabulky sale_stats
:
Třetí, dotazujte se na data z tabulky sale_stats
:
Nakonec pomocí klauzule UNPIVOT
transponujte hodnoty ve sloupci a_qty
, a_value
, b_qty
a b_value
do řádků:
Tady je sada výsledků:
Tento obrázek ilustruje proces transpozice:
V tomto návodu jste se naučili používat klauzuli Oracle UNPIVOT
k transpozici sloupců do řádků.
- Byl tento výukový kurz užitečný
- AnoNe
.