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:
- Column_list - Dette spesifiserer kolonnen du ønsker å velge mellom den medfølgende tabellen.
- PIVOT_EXPRESSION - Dette definerer kolonnene du ønsker å samle. Dette utfører en implisitt gruppe etter operasjon basert på kolonnene som ikke.
- pivot_for_expression -Dette beskriver kolonnen vi ønsker å gruppere eller svinge.
- 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.