Une requête pivot dans Oracle est conçu pour convertir les colonnes de lignes et vice versa. Cela signifie commutation l'accent sur les données d'une sortie en colonnes pour une sortie basée sur les lignes , généralement un résumé des données comme on le voit dans l'exemple suivant , montrant les villes et les noms d'un ensemble de personnes : Nom de la ville ----- ------------------ New York RaoNew York MillerNew York SmithNew York TailorCalifornia ZettingerCalifornia CarburosCalifornia DillonTexas RamirezTexas MartinTexas KingIn pivoter requête , la sortie pourrait être: Nom de ville (s) ---- --------------------------- New York Rao , Miller, Smith, TailorCalifornia Zettinger , Carburos , DillonTexas Ramirez , Martin, roi Instructions
Photos 1
Créer une table de test et de placer toutes les informations dans une table contenant le format original comme suit à la "SQL >" invite:
CREATE TABLE Unis (produits
StateName VARCHAR2 ( 100) , AB
nom VARCHAR2 ( 20)
)
/
2
insérer les données dans la nouvelle table "états" , de sorte qu'il peut être extraite sous forme de pivot:
INSERT INTO États VALUES (' New York ', ' Rao ');
INSERT INTO États VALUES ( 'New York' , ' Miller ');
INSERT INTO États VALUES ( ' New York ' , ' Smith ' ) ;
INSERT INTO États VALUES ( ' New York ' , ' sur mesure ');
< p > INSERT INTO États VALUES (' Californie ', ' Zettinger ');
INSERT INTO États VALUES (' Californie ', ' Carburos ');
INSERT INTO États VALUES ( «California» , « Dillon ») ;
INSERT INTO États VALUES ( 'Texas ', ' Ramirez ');
INSERT INTO États VALUES ( 'Texas ', ' Martin ');
< p > INSERT INTO États VALUES (' Texas ', ' King' );
3
Sélectionner l'ensemble des données de la nouvelle table pour voir à quoi il ressemble à l'heure actuelle :
Sélectionnez * des Etats ;
Il devrait afficher une sortie similaire à ce qui suit:
Ville Nom
----------------- ------
New York Rao
New York Miller
New York Smith &
New York Tailor
Californie Zettinger Photos
Californie Carburos
Californie Dillon
Texas Ramirez
Texas Martin
Texas roi
4
pivot de la requête en utilisant la technique suivante : .
SELECT a.statename , AB
- Vérifiez le numéro de ligne pour chaque nom et utiliser le nom résultant
MAX ( DECODE (ar , 1, a.surname ) )