Oracle中用一条SQL实现其它进制到十进制的转换

日期: 2008-11-16 来源:TechTarget中国

  注:对其它进制可以根据例子将power的底数改成相应的进制就可以了。

    本文只是一个例子,大家可以把它封装成一个通用函数进行实用。

    大家在试的时候将里面相应的其它进制的数值换成自己的数据就可以了(有多处)。

    二进制转换十进制


select sum(data1)
  from (select substr(“1101″, rownum, 1) * power(2, length(“1101”) – rownum) data1
          from dual
        connect by rownum <= length(“1101”)) 


    八进制转换十进制


select sum(data1)
  from (select substr(“1101″, rownum, 1) * power(8, length(“1101”) – rownum) data1
          from dual
        connect by rownum <= length(“1101”)) 


    十六进制转换十进制


select sum(data1)
  from (select (CASE upper(substr(“2D”, rownum, 1))
                 WHEN “A” THEN “10”
                 WHEN “B” THEN “11”
                 WHEN “C” THEN “12”
                 WHEN “D” THEN “13”
                 WHEN “E” THEN “14”
                 WHEN “F” THEN “15”
                 ELSE substr(“2D”, rownum, 1)
               END) * power(16, length(“2D”) – rownum) data1
          from dual
        connect by rownum <= length(“2D”)) 

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐