Összefoglaló: ebben a bemutatóban megtanulja, hogyan használja az Oracle UNPIVOT
záradékot az oszlopok sorokba történő átvitelére.
Elvezetés az Oracle UNPIVOT záradékhoz
Az Oracle UNPIVOT
záradék lehetővé teszi az oszlopok sorokba történő átvitelét. A UNPIVOT
záradék ellentétes a PIVOT
záradékkal, azzal a különbséggel, hogy a transzponálás során nem bontja az adatokat.
Az alábbiakban az Oracle UNPIVOT
záradék szintaxisát szemléltetjük:
Ebben a szintaxisban:
- A
unpivot_clause
lehetővé teszi, hogy megadjon egy nevet egy olyan oszlophoz, amely a pivotálatlan mértékértékeket képviseli. - A
unpivot_for_clause
lehetővé teszi az egyes oszlopok nevének megadását, amelyek az intézkedés értékeit fogják tartalmazni. - A
unpivot_in_clause
tartalmazza a pivotált oszlopokat, amelyek nem lesznek pivotálva.
A INCLUDE | EXCLUDE NULLS
záradék lehetővé teszi a null értékű sorok felvételét vagy kizárását.
- A
INCLUDE NULLS
záradék utasítja az Oracle-t a nulla értékű sorok bevonására. - A
EXCLUDE NULLS
záradék viszont kizárja a nulla értékű sorokat a visszaadott eredményhalmazból.
Az unpivot művelet alapértelmezés szerint kizárja a nulla értékű sorokat.
Vegyünk néhány példát az Oracle UNPIVOT
záradék használatára, hogy jobban megértsük.
Mintatábla beállítása
Először is hozzunk létre egy új, sale_stats
nevű táblát a demonstrációhoz:
Másodszor, szúrjunk be néhány sort a sale_stats
táblába:
Harmadszor, kérdezzük le az adatokat a sale_stats
táblából:
Itt a kimenet:
Oracle UNPIVOT példák
Ez az utasítás a UNPIVOT
záradékot használja a product_a
, product_b
és product_c
oszlopok sorokba forgatására:
Ebben a példában:
A unpivot_clause
a quantity
oszlop, amely a product_a
, product_b
és product_c
oszlopok nem pivotált értékeit képviseli.
A unpivot_for_clause
a FOR product_code
, amely az intézkedés értékeit tartalmazó oszlop.
A unpivot_in_clause
záradék:
amely arra utasítja az Oracle-t, hogy a product_a
, product_b
és product_c
oszlopok értékeit ne pivotálja.
A következő képen látható a kimenet:
A UNPIVOT
művelet alapértelmezés szerint kizárja a null értékű sorokat, ezért a kimeneten nem lát NULL értéket.
A következő példa a UNPIVOT
záradékot használja a product_a
, product_b
és product_c
oszlopok értékeinek sorokká történő transzponálására, de a null értékű sorokat is beleértve:
Itt a kimenet:
Oracle unpivot multiple columns
Lássunk egy példát több oszlop unpivotolására.
Először is, töröljük és hozzuk létre újra a sale_stats
táblát:
Második, szúrjunk be sorokat a sale_stats
táblába:
Harmadik, kérdezzük le az adatokat a sale_stats
táblából:
Végül használja a UNPIVOT
záradékot a a_qty
, a_value
, b_qty
és b_value
oszlopban lévő értékek sorokká történő transzponálásához:
Itt az eredményhalmaz:
Ez a kép szemlélteti a transzponálási folyamatot:
Ebben a bemutatóban megtanulta, hogyan használja az Oracle UNPIVOT
záradékot oszlopok sorokká történő transzponálására.
- Az oktatóanyag hasznos volt?
- IgenNem