Oracle Pivot

Oracle Pivot
Dette innlegget dekker begrepet svinging i Oracle Server ved hjelp av pivot -leddet. Denne klausulen lar deg omorganisere en tabell rader i kolonner. Dette sikrer at du kan få resultater fra en gitt spørring i et krysningsformat.

Introduksjon til Oracle Pivoting

Som standard lagrer relasjonsdatabaser informasjon i tabellformat i kolonneverdipar. I noen tilfeller kan det imidlertid være lurt å avlede utformingen og formateringen av dataene for å representere en annen type informasjon.

Det er her svinging kommer på plass. Pivot -klausulen ble introdusert i Oracle 11c, og kan ta et gitt tabellformat og utføre en rotasjonsoperasjon. Dette kan deretter konvertere radene til kolonner.

Spørringssyntaks

Nedenfor er en enkel syntaks som demonstrerer bruken av pivotklausulen i en Oracle -database.

Velg kolonne_list
Fra tabellnavn
pivot [xml] (
pivot_expression
pivot_for_expression
pivot_in_expression
);

Ovennevnte syntaks inneholder følgende elementer:

  1. Column_list - Dette spesifiserer kolonnen du ønsker å velge mellom den medfølgende tabellen.
  2. PIVOT_EXPRESSION - Dette definerer kolonnene du ønsker å samle. Dette utfører en implisitt gruppe etter operasjon basert på kolonnene som ikke.
  3. pivot_for_expression -Dette beskriver kolonnen vi ønsker å gruppere eller svinge.
  4. pivot_in_expression - Dette definerer filterkolonnene for pivot_for_expression.

La oss se på et eksempel på pivotering av Oracle Table.

Oracle Pivoting Eksempel illustrasjon

Anta at vi har en bestillingsbord som holder informasjon som vist i spørsmålene nedenfor:

Skaperbare bestillinger
(
Idnumbernotnull,
Kunden varchar2 (50) Notnull,
ordre_datedate,
PRODUKT_IDNUMBER,
mengde nummer,
Prisnummer,
CONSTRAINTORDER_PK Primærnøkkel (ID)
);
Sett inn bestillinger (ID, kunde, ordre_date, produkt_id, mengde, pris)
Verdier (1, 'Beatriz', dato '2022-10-10', 4500, 45, 56);
Sett inn bestillinger (ID, kunde, ordre_date, produkt_id, mengde, pris)
Verdier (2, 'Ali', dato '2022-10-10', 5400, 65, 109);
Sett inn bestillinger (ID, kunde, ordre_date, produkt_id, mengde, pris)
Verdier (3, 'Gabriel', dato '2022-10-11', 6400, 405, 586);
Sett inn bestillinger (ID, kunde, ordre_date, produkt_id, mengde, pris)
Verdier (4, 'Beatriz', dato '2022-10-11', 5800, 55, 550);
Sett inn bestillinger (ID, kunde, ordre_date, produkt_id, mengde, pris)
Verdier (5, 'Beatriz', dato '2022-10-12', 4506, 46, 700);
Sett inn bestillinger (ID, kunde, ordre_date, produkt_id, mengde, pris)
Verdier (6, 'Gabriel', dato '2022-10-11', 9001, 450, 5600);

Utgangstabell:

Eksempel

Eksemplet nedenfor bruker PIVOT -klausulen for kundeinformasjon og det kjøpte produktet.

Velg * fra
(
Velg kunde, produkt_id fra bestillinger
)
dreie
(
Telling (produkt_id)
For produkt_id i (4500, 6400, 5800, 4506, 9001)
)
Bestilling av kunde;

Et eksempel som resulterende tabell er som vist:

Eksempel 2 - Aliasing pivottede kolonner

Aliasing kolonner Eksempel:

Velg * fra
(
Velg kunde, produkt_id fra bestillinger
)
dreie
(
Telling (produkt_id)
For Product_ID in ('T-skjorter' 4500, 'Cooler Case' 6400, 'Audio Mic' 5800, 'Android Phone' 4506, 'Curved Monitor' 9001)
)
Bestilling av kunde;

Konklusjon

Denne artikkelen dekker det grunnleggende om å jobbe med Pivot -kommandoen i Oracle -databaser.