当前位置: 移动技术网 > IT编程>数据库>Oracle > Oracle11以后的行列转换

Oracle11以后的行列转换

2020年03月09日  | 移动技术网IT编程  | 我要评论

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

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

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项起别名,那样就能实现动态列了。

 

注意

如果不是全字段进行行列转换的时候,不需要加row_number,

如果加上的话,会造成一些数据没有被变到列上,因为相同项的row_number可能不一样。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网