Samenvatting: in deze tutorial leer je hoe je de Oracle UNPIVOT
-clausule kunt gebruiken om kolommen naar rijen te transponeren.
Inleiding tot de Oracle UNPIVOT-clausule
Met de Oracle UNPIVOT
-clausule kun je kolommen naar rijen transponeren. De UNPIVOT
-clausule is tegengesteld aan de PIVOT
-clausule, behalve dat de gegevens tijdens het transponeren niet worden gedesaggregeerd.
Het volgende illustreert de syntaxis van de Oracle UNPIVOT
-clausule:
In deze syntaxis:
- Met
unpivot_clause
kunt u een naam opgeven voor een kolom die de niet-gedivoteerde maatstafwaarden weergeeft. - Met de
unpivot_for_clause
kunt u de naam opgeven voor elke kolom die de waarden van de maatregel zal bevatten. - De
unpivot_in_clause
bevat de niet-gedivoteerde kolommen.
Met de INCLUDE | EXCLUDE NULLS
-clausule kunt u rijen met nulwaarden in- of uitsluiten.
- De
INCLUDE NULLS
-clausule instrueert Oracle om null-valued rijen op te nemen. - De
EXCLUDE NULLS
-clausule daarentegen elimineert null-valued rijen uit de geretourneerde resultatenreeks.
De standaardinstelling is dat de unpivot-bewerking rijen met een null-waarde uitsluit.
Laten we enkele voorbeelden nemen van het gebruik van de Oracle UNPIVOT
-clausule om een beter begrip te krijgen.
Een voorbeeldtabel opzetten
Maak eerst ter demonstratie een nieuwe tabel met de naam sale_stats
:
Seconde, voeg enkele rijen in de tabel sale_stats
in:
Derde, vraag gegevens op uit de tabel sale_stats
:
Hierna volgt de uitvoer:
Oracle UNPIVOT voorbeelden
Dit statement gebruikt de UNPIVOT
clausule om de kolommen product_a
, product_b
, en product_c
in rijen te draaien:
In dit voorbeeld:
De unpivot_clause
is quantity
, een kolom die de niet-gedraaide waarden uit de kolommen product_a
, product_b
, en product_c
weergeeft.
De unpivot_for_clause
is FOR product_code
, dat is de kolom die de waarden van de maatregel zal bevatten.
De unpivot_in_clause
clausule is:
die Oracle instrueert om de waarden in de kolommen product_a
, product_b
, en product_c
te unpivotten.
De volgende afbeelding toont de uitvoer:
De UNPIVOT
-bewerking sluit standaard null-valued rijen uit, daarom ziet u geen NULL in de uitvoer.
Het volgende voorbeeld gebruikt de UNPIVOT
-clausule om waarden in de kolommen product_a
, product_b
en product_c
om te zetten in rijen, maar inclusief rijen met nulwaarden:
Hierna volgt de uitvoer:
Oracle unpivot multiple columns
Laten we eens een voorbeeld zien van het unpivoteren van meerdere kolommen.
Eerst laat u de tabel sale_stats
vallen en maakt u deze opnieuw aan:
Tweede voegt u rijen in de tabel sale_stats
in:
Terde voert u een query uit op gegevens uit de tabel sale_stats
:
Gebruik ten slotte de UNPIVOT
-clausule om de waarden in de kolommen a_qty
, a_value
, b_qty
en b_value
in rijen te transponeren:
Hier ziet u de resultaten:
Deze afbeelding illustreert het omzettingsproces:
In deze tutorial hebt u geleerd hoe u de Oracle UNPIVOT
-clausule kunt gebruiken om kolommen in rijen om te zetten.
- Was deze zelfstudie nuttig?
- JaNee