Exemple D'une clause de PIVOT Oracle avec subquery
Oracle définition de la clause PIVOT spécifie qu'il est possible de définir une sous-requête dans le IN
l'article. Un exemple fictif de ce que j'imagine, c'est ce
... PIVOT (AVG(salary) FOR (company) IN (SELECT DISTINCT company FROM companies))
Avec cela, cependant, j'ai un ORA-00936: Missing expression
erreur. Malheureusement, les erreurs de cette nouvelle PIVOT
les clauses sont habituellement assez cryptiques. Est-ce que quelqu'un peut me donner un bon exemple de la façon dont un sous-jeu peut être utilisé dans le IN
clause PIVOT
l'article?
2 réponses
apparemment, j'étais trop paresseux pour lire la fin de la documentation... Plus bas, la documentation indique:
sous-requête une sous-requête est utilisée seulement en conjonction avec le mot-clé XML. Lorsque vous spécifiez un sous-jeu, toutes les valeurs trouvées par le sous-jeu sont utilisées pour pivoter. [...]
PIVOT XML (AVG(salary) FOR (company) IN (SELECT DISTINCT company FROM companies))
Voir l'intégralité de l' documentation
http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_10002.htm#CHDFAFIE
j'ai eu une demande similaire. J'ai réalisé cela via pl sql a écrit un SQL dynamique et l'a ajouté au pivot dans la clause. Ofcourse pivot query était aussi un sql dynamique. Mais dans la clause normale de pivot ce n'est pas possible, en utilisant sql.