Oracle的
definition of the PIVOT clause规定了可以在IN子句中定义一个子查询.这是我想象的一个虚构的例子
... PIVOT (AVG(salary) FOR (company) IN (SELECT DISTINCT company FROM companies))
不过,我得到一个ORA-00936:缺少表达式错误.不幸的是,这个新的PIVOT条款的错误通常是相当隐秘的.任何人都可以给我一个很好的例子,说明如何在PIVOT子句的IN子句中使用子查询?
解决方法
显然,我太懒了,没有阅读到文档的末尾…进一步下来,文档规定:
subquery A subquery is used only in conjunction with the XML keyword. When you specify a subquery,all values found by the subquery are used for pivoting. […]
这将工作
PIVOT XML (AVG(salary) FOR (company) IN (SELECT DISTINCT company FROM companies))
查看完整的文档
http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_10002.htm#CHDFAFIE