`
weiqingfei
  • 浏览: 311920 次
  • 性别: Icon_minigender_1
  • 来自: 黑洞
社区版块
存档分类
最新评论

Oracle的行转列

 
阅读更多
    select  
      A1,A2, b1,b2
    from  
      (select '01' as A1, 'a' as A2, '1' as A3, 'x' as a4, '12' as A5  from dual UNION all
       select '01' as A1, 'a' as A2, '2' as A3, 'z' as a4, '23' as A5  from dual UNION all
       select '01' as A1, 'b' as A2, '1' as A3, 'x' as a4, '34' as A5  from dual UNION all
       select '01' as A1, 'b' as A2, '2' as A3, 'z' as a4, '45' as A5  from dual UNION all
       select '02' as A1, 'c' as A2, '1' as A3, 'x' as a4, '56' as A5  from dual UNION all
       select '02' as A1, 'c' as A2, '2' as A3, 'z' as a4, '67' as A5  from dual UNION all
       select '02' as A1, 'd' as A2, '1' as A3, 'x' as a4, '78' as A5  from dual UNION all
       select '02' as A1, 'd' as A2, '2' as A3, 'z' as a4, '89' as A5  from dual
      ) t
    model  
    RETURN UPDATED ROWS  --只返回被更新的行
    partition by(A1,A2)         --按照A1,A2分组
    dimension by(A3,A4)      --以A3,A4为标尺
    measures(  
      A5 as b1,                     --初始化新列b1,为了保证b1的长度,以A5进行初始化
      A5 as b2,                     --初始化新列b2
      A5 as b5                      
    )  
    rules(  
      b1[null,null]=b5['1','x'],   --[null,null]表示不更新任何行,而追加一行,用所给A3,A4值查找对应的A5的值
      b2[null,null]=b5['2','z']
    );  

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics