Oracle UNPIVOT

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.

Oracle UNPIVOT

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 - ukázková tabulka

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:

oracle unpivot - example

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 include nulls example

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ů:

oracle unpivot multiple columns example

Tento obrázek ilustruje proces transpozice:

Oracle unpivot multiple columns

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

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.