2012-07-26 13 views
5

Gemäß Orakeldokumentation unterstützt die Funktion PIVOT keine Unterabfrage im "IN" -Klausel, aber sie ist in der XML - Funktion PIVOT möglich. Zum BeispielAlternative Methode für PIVOT - IN mit Unterstützung von Unterabfragen

SELECT * 
FROM table_name 
PIVOT 
(
    SUM(column_name_1) 
    FOR [column_name_2] IN (['Output_Column1'],['Output_Column2']) 
) 
AS aliasName 

Ich brauche die ['Output_Column1'],['Output_Column2'] mit Unterabfrage zu ersetzen.

Gibt es eine andere Funktion, die PIVOT entspricht, wo wir Sub-Abfrage stattdessen hart Codierung der gesamten Ausgabespalten oder sogar in der PIVOT Funktion selbst liefern können ?.

Antwort

1

Nein, muss die Anzahl der Spalten zur Analysezeit bekannt sein. Für PIVOT XML gibt es kein Problem, da diese Abfrage nur eine Spalte zurückgibt.

+0

Dank Marcin. Aber gibt es eine äquivalente Funktion wie PIVOT und erfüllt die obigen Kriterien (Unter-Abfrage verwenden)? –

+2

@VijayKrish Mein Kommentar war über jede SQL-Abfrage - Sie können keine variable Anzahl von Spalten haben, es gibt keine solche Option. Vielleicht erklären Sie, was Sie erreichen wollen. Warum brauchst du so etwas? –

+0

Meine Tabelle besteht aus folgenden Coulmns. Person_id, Status, etc .. –

Verwandte Themen