Oracle UNPIVOT

Ö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.

Oracle UNPIVOT

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 - mintatábla

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:

oracle unpivot - example

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

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:

Oracle unpivot multiple columns example

Ez a kép szemlélteti a transzponálási folyamatot:

Oracle unpivot multiple columns

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

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.