2012-07-26 24 views
5

Come da documentazione oracle, la funzione PIVOT non supporta la sottoquery nella clausola "IN" ma è possibile nella funzione XML PIVOT. E.g.Metodo alternativo per PIVOT-IN con supporto per sub-query

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

Ho bisogno di sostituire il ['Output_Column1'],['Output_Column2'] con sub-query.

Esiste un'altra funzione equivalente a PIVOT in cui è possibile fornire sotto-query, invece di codificare hard tutte le colonne di output o anche nella stessa funzione PIVOT ?.

risposta

1

No, il numero di colonne deve essere noto al momento dell'analisi. Per PIVOT XML non ci sono problemi perché questa query restituisce solo una colonna.

+0

Grazie Marcin. Ma esiste una funzione equivalente come PIVOT e che soddisfa i criteri di cui sopra (Utilizzo di sub-query)? –

+2

@VijayKrish Il mio commento riguardava qualsiasi query SQL: non è possibile avere un numero variabile di colonne, non esiste tale opzione. Forse spiega cosa stai cercando di ottenere. Perché hai bisogno di una cosa del genere? –

+0

La mia tabella comprende i seguenti follower. Person_id, stato, ecc. –

Problemi correlati