A pivot forespørgsel i Oracle er designet til at konvertere kolonner til rækker og omvendt. Det betyder at skifte vægten af data fra en søjleformet output til en udgang på grundlag af rækker , som regel et sammendrag af de data, som ses i det følgende eksempel viser byer og navne på et sæt af mennesker : bynavn ----- ------------------ New York RaoNew York MillerNew York SmithNew York TailorCalifornia ZettingerCalifornia CarburosCalifornia DillonTexas RamirezTexas MartinTexas KingIn drejet forespørgsel, kan ydelsen være : By Navn (e) ---- --------------------------- New York Rao , Miller, Smith, TailorCalifornia Zettinger , Carburos , DillonTexas Ramirez , Martin , konge Instruktioner
1
Opret en test bord og placerer alle oplysninger i en tabel, der indeholder det oprindelige format som følger på " SQL >" prompt : Hej
CREATE tABLE lande (
statename VARCHAR2 (100) ,
efternavnet VARCHAR2 (20)
)
/
2
Indsæt data i den nye " hedder " table , således at den kan hentes i pivot formular : Hej
INSERT INTO stater VALUES ( ' New York ', ' Rao ');
INSERT INTO stater VALUES ( ' New York ', ' Miller ');
INSERT INTO stater VALUES ( ' New York ',' Smith ');
INSERT INTO stater VALUES ( ' New York ',' Skrædder ');
< p > INSERT INTO stater VALUES ( ' California ', ' Zettinger ');
INSERT INTO stater VALUES ( ' California ', ' Carburos ');
INSERT INTO stater VALUES ( ' California ' , » Dillon ');
INSERT INTO stater VALUES ( ' Texas ',' Ramirez ');
INSERT INTO stater VALUES ( ' Texas ',' Martin ');
< p > INSERT INTO stater VALUES ( ' Texas ', ' King' ),
3
Vælg alle data fra den nye tabel for at se, hvordan det ser ud på nuværende tidspunkt : Hej
Vælg * fra stater,
p Det skal vise lignende output til følgende : Hej
bynavn
----------------- ------
New York Rao
New York Miller
New York Smith
New York Tailor
California Zettinger
California Carburos
California Dillon
Texas Ramirez
Texas Martin
Texas King
4
Pivot forespørgslen ved at bruge følgende teknik : .
SELECT a.statename , salg
- Kontroller rækkenummeret for hvert navn og bruge det resulterende navn
MAX ( DECODE ( ar , 1, a.surname ) )