Ein Pivot -Abfrage in Oracle entwickelt, um Spalten in Zeilen und umgekehrt konvertieren. Es bedeutet Umschalten der Schwerpunkt der Daten aus einer säulenförmigen Ausgang an einen Ausgang auf Zeilen , in der Regel eine Zusammenfassung der Daten , wie im folgenden Beispiel zu sehen basiert , welche die Städte und Namen von einer Reihe von Personen: Stadt Name ----- ------------------ New York RaoNew Yorker MillerNew Yorker SmithNew Yorker TailorCalifornia ZettingerCalifornia CarburosCalifornia DillonTexas RamirezTexas MartinTexas Kingin geschwenkt Abfrage könnte der Ausgang sein : Stadt Name (n) ---- --------------------------- New York Rao , Miller, Smith, TailorCalifornia ZETTINGER , Carburos , DillonTexas Ramirez, Martin , König Anleitung
1
erstellen Test-Tabelle und legen Sie alle Informationen in einer Tabelle mit der ursprünglichen Format wie folgt in der " SQL > " prompt :
CREATE TABLE Staaten (
StateName VARCHAR2 ( 100 ), Stand
Nachnamen VARCHAR2 ( 20)
)
/
2
Einfügen der Daten in die neue "states" Tabelle , so dass es in Pivot- Form extrahiert werden :
INSERT INTO states VALUES ( ' New York ', ' Rao ');
INSERT INTO states VALUES ( ' New York ', ' Miller ');
INSERT INTO states VALUES ( ' New York ' , ' Smith ');
INSERT INTO states VALUES ( ' New York ',' Tailor ');
< p
INSERT INTO states VALUES ( 'California ', ' Carburos '); ;
INSERT INTO states VALUES ( 'California ' , > INTO states VALUES ( 'California ', ' ZETTINGER ') INSERT ' Dillon ');
INSERT INTO states VALUES ( ' Texas ', ' Ramirez ');
INSERT INTO states VALUES ( ' Texas ', ' Martin ');
< p > INSERT INTO states VALUES ( ' Texas ', ' King' );
3
Wählen Sie alle Daten aus der neuen Tabelle , um zu sehen , wie es zur Zeit aussieht:
auswählen * aus Staaten ;
Es sollte eine ähnliche Ausgabe zur folgenden Anzeige :
Stadt Name
----------------- ------
New York Rao
New York Miller
New York Smith
New York Tailor
California ZETTINGER
California Carburos
California Dillon
Texas Ramirez
Texas Martin
Texas König
4
Drehen Sie die Abfrage mit der folgenden Technik : .
SELECT a.statename ,
- Überprüfen Sie die Zeilennummer für jeden Namen und verwenden Sie das Ergebnis Namen
MAX (Entschlüsseln ( ar , 1, a.surname ) )