2012-07-26 15 views
5

Según la documentación del oráculo, la función PIVOT no admite la subconsulta en la cláusula "IN", pero es posible en la función XML PIVOT. P. ej.Método alternativo para PIVOTE - EN con soporte de subconsulta

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

tengo que sustituir el ['Output_Column1'],['Output_Column2'] con sub-consulta.

¿Existe alguna otra función equivalente a PIVOT en la que podamos proporcionar una subconsulta en lugar de codificar todas las columnas de salida o incluso en la función PIVOT?

Respuesta

1

No, el número de columnas se debe conocer en el tiempo de análisis. Para PIVOT XML no hay problema porque tal consulta devuelve solo una columna.

+0

Gracias Marcin. Pero, ¿hay alguna función equivalente como PIVOT y que cumpla con los criterios anteriores (mediante la subconsulta)? –

+2

@VijayKrish Mi comentario fue sobre cualquier consulta SQL; no puede haber una cantidad variable de columnas, no existe tal opción. Quizás explique lo que está tratando de lograr. ¿Por qué necesitas tal cosa? –

+0

Mi tabla consiste en siguientes coulmns. Person_id, estado, etc. –