Benutzer-Werkzeuge

Webseiten-Werkzeuge


prog:sql_oracle_unpivot

Inhaltsverzeichnis

SQL UNPivot Funktion

ab 11g

Aufgabe

Eine Tabelle enthält 3 Felder für bestimmte Eigenschaften, die drei Eigenschaften sollen aber als Liste untereinander verarbeitet werden.

Beispiel:

SELECT API_KEY,IP_ADRESS1,IP_ADRESS2,IP_ADRESS3 FROM  API_SECURITY
 
ABC    10.10%   192.%      178.%
XCY    10.11%   192.123%   179.%

– Die Anzeige soll nun aber lauten:

 
ABC  10.10%   
ABC  192.%      
ABC  178.%
 
...

Lösung: Oracle UNPIVOT Funktion

SELECT API_KEY
     , IP
     , IP_ADRESSPOS
FROM   API_SECURITY
UNPIVOT (IP FOR IP_ADRESSPOS IN (IP_ADRESS1 AS '1', IP_ADRESS2 AS '2', IP_ADRESS3 AS '3'));
 
APY_KEY  IP       IP_ADRESSPOS
------   -----   -------------
ABC      10.10%   1
ABC      192.%    2   
ABC      178.%    3
...

Der Trick ist nun in der UNPIVOT Klausel die Spalten aufzulösen, dazu werden zwei beliebige neue Spalten Namen definiert und eine Regel an zugegeben wie das Mapping auf die existierenden Spalten umgesetzt werden soll.

Für die andere Richtung siehe auch SQL Pivot Funktion.


Quellen

Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
"Autor: Gunther Pipperr"
prog/sql_oracle_unpivot.txt · Zuletzt geändert: 2019/05/17 18:49 von Gunther Pippèrr