Oracle UNPIVOT

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.

Oracle UNPIVOT

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 - voorbeeldtabel

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:

oracle unpivot - voorbeeld

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

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:

oracle unpivot multiple columns example

Deze afbeelding illustreert het omzettingsproces:

Oracle unpivot multiple columns

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

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.