Oracle11以后,行列转换有了新的方法。

下面的是已经疏通过的代码,请放心使用。。。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

With AA as (

Select A,B,C,row_number() over (partition by B order by b) D from (

  Select 10 A, 11 B, 12 C from dual

  union 

  select 20,11,22 from dual

  union

  select 30 , 21 , 32 from dual )  

)

Select * from AA pivot (Max(A) , Max(C) for B in (11,21))

 

备注

B字段想定的是日期,如果需要动态列的话,可以把Max项起别名,那样就能实现动态列了。

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄