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?

20
demandé sur Lukas Eder 2012-01-06 19:11:58

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

22
répondu Lukas Eder 2012-01-06 15:13:59

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.

0
répondu Harshita 2018-09-05 17:56:02