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.
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 NULLS
klausulen 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 eksempler
Denne anvisning bruger UNPIVOT
klausulen 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:
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 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:
Dette billede illustrerer transponeringsprocessen:
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