Oracle UNPIVOT

Summarum: I denne vejledning lærer du, hvordan du bruger Oracle UNPIVOT-klausulen til at omlægge kolonner til rækker.

Indledning til Oracle UNPIVOT-klausulen

Oracle UNPIVOT-klausulen giver dig mulighed for at omlægge kolonner til rækker. UNPIVOT-klausulen er modsat PIVOT-klausulen, bortset fra at den ikke de-aggregerer data under transponeringsprocessen.

Oracle UNPIVOT

Det følgende illustrerer syntaksen for Oracle UNPIVOT-klausulen:

I denne syntaks:

  • Den unpivot_clause giver dig mulighed for at angive et navn for en kolonne, der repræsenterer de ikke-pivoterede måleværdier.
  • Med unpivot_for_clause kan du angive navnet på hver kolonne, der skal indeholde målingens værdier.
  • Den unpivot_in_clause indeholder de pivoterede kolonner, der ikke vil blive pivoteret.

Med INCLUDE | EXCLUDE NULLSklausulen kan du inkludere eller udelukke rækker med nulværdier.

  • Klausulen INCLUDE NULLS instruerer Oracle om at inkludere nul-værdisatte rækker.
  • Klausulen EXCLUDE NULLS eliminerer på den anden side nul-værdisatte rækker fra det returnerede resultatsæt.

Som standard udelukker unpivot-operationen null-valuerede rækker.

Lad os tage nogle eksempler på brug af Oracle UNPIVOT-klausulen for at få en bedre forståelse.

Oprettelse af en eksempeltabel

Først opretter du en ny tabel kaldet sale_stats til demonstration:

For det andet indsætter du nogle rækker i sale_stats-tabellen:

For det tredje forespørger du data fra sale_stats-tabellen:

Her er output:

oracle unpivot - eksempeltabel

Oracle UNPIVOT eksempler

Denne anvisning bruger UNPIVOTklausulen til at rotere kolonnerne product_a, product_b og product_c til rækker:

I dette eksempel:

Den unpivot_clause er quantity, som er en kolonne, der repræsenterer de ikke-pivoterede værdier fra kolonnerne product_a, product_b og product_c.

Den unpivot_for_clause er FOR product_code, som er den kolonne, der skal indeholde foranstaltningens værdier.

Den unpivot_in_clause klausul er:

som instruerer Oracle om at afpivotere værdierne i kolonnerne product_a, product_b og product_c.

Det følgende billede viser output:

oracle unpivot - eksempel

Som standard udelukker UNPIVOT-operationen rækker med nulværdi, og derfor kan du ikke se NULL i output.

Det følgende eksempel bruger UNPIVOT-klausulen til at transponere værdier i kolonnerne product_a, product_b og product_c til rækker, men inklusive rækker med nul-værdi:

Her er output:

oracle unpivot include nulls example

Oracle unpivot multiple columns

Lad os se et eksempel på unpivoting multiple columns.

Først skal du droppe og genskabe sale_stats-tabellen:

For det andet skal du indsætte rækker i sale_stats-tabellen:

For det tredje skal du forespørge data fra sale_stats-tabellen:

Slutteligt skal du bruge klausulen UNPIVOT til at omkonvertere værdierne i kolonne a_qty, a_value, b_qty og b_value til rækker:

Her er resultatsættet:

oracle unpivot multiple columns example

Dette billede illustrerer transponeringsprocessen:

Oracle unpivot multiple columns

I denne vejledning har du lært, hvordan du bruger Oracle UNPIVOT-klausulen til at transponere kolonner til rækker.

  • Var denne vejledning nyttig?
  • JaNej

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.