sql - una - pivot oracle ejemplos




Ejemplo de una cláusula Oracle PIVOT con subconsulta (2)

Aparentemente, era demasiado perezoso para leer hasta el final de la documentación ... Más abajo, la documentación dice:

subconsulta Una subconsulta se usa solo junto con la palabra clave XML. Cuando especifica una subconsulta, todos los valores encontrados por la subconsulta se usan para pivotar. [...]

Esto funcionara

PIVOT XML (AVG(salary) FOR (company) IN (SELECT DISTINCT company FROM companies))

Ver la documentación completa.

http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_10002.htm#CHDFAFIE

La definición de Oracle de la cláusula PIVOT especifica que existe la posibilidad de definir una subconsulta en la cláusula IN . Un ejemplo ficticio de lo que me imagino que es esto es esto

... PIVOT (AVG(salary) FOR (company) IN (SELECT DISTINCT company FROM companies))

Sin embargo, con eso obtengo un error de ORA-00936: Missing expression . Desafortunadamente, los errores de esta nueva cláusula PIVOT suelen ser bastante crípticos. ¿Puede alguien darme un buen ejemplo de cómo se puede usar una subconsulta en la cláusula IN de la cláusula PIVOT ?


Tuve un requisito similar. Logré esto a través de pl sql, escribí un sql dinámico y lo agregué a la cláusula pivot IN. Por supuesto, la consulta dinámica también era un sql dinámico. Pero en la cláusula pivote normal esto no es posible, usando sql.





pivot