回答

收藏

带有子查询的Oracle PIVOT子句的示例

技术问答 技术问答 374 人阅读 | 0 人回复 | 2023-09-14

Oracle对PIVOT子句的定义指定可以在IN子句中定义子查询。我能想象的一个虚构的例子是. J( j( v( F) m& R5 P: x4 d
... PIVOT (AVG(salary) FOR (company) IN (SELECT DISTINCT company FROM companies))
9 c% v  k$ Q& B9 m但是,与此同时,我得到了一个ORA-00936: Missing( ?* a+ R3 U$ w! {0 h9 l* ?
expression错误。不幸的是,来自这个新PIVOT子句的错误通常相当隐蔽。谁能给我一个很好的示例,说明如何在IN子句的PIVOT子句中使用子查询?) z8 e2 ?: s0 h* ~
                & x% H  l  m6 l, m
解决方案:
3 ]8 e3 ?" m! m" R, U* D* ?               
! Y3 s: s2 ~- `" E% e( ]  B" D% D2 B. c6 F0 E' F
: [9 d  e  K; Q8 T
                显然,我懒得阅读文档的结尾…再往下看,文档指出:7 Z- P' Q% x" A

9 I/ R* U4 Y' s$ a' E+ e子查询子查询仅与XML关键字一起使用。指定子查询时,该子查询找到的所有值都将用于透视。[…]+ Z& \8 q; U8 w5 U7 Q

+ \' b: V: M* C( a; @6 E这会工作
3 P; v( |$ n, B0 |$ YPIVOT XML (AVG(salary) FOR (company) IN (SELECT DISTINCT company FROM companies))
4 F& |2 ^7 ~! k& v查看完整的文档0 M$ }3 q* n- B: B, R0 F- X& B
http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_10002.htm#CHDFAFIE
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则