巧用一条SQL实现其他进制到十进制的转换

上一篇 / 下一篇  2007-12-20 16:39:00 / 个人分类:技术摘录

 

本文主要讲解了在Oralce中如何通过一条SQL实现其他进制到十进制的转换实例代码,大家可以把它封装成一个通用函数来进行使用,面向其它进制时大家可以根据例子将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´))

TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-09-27  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 3193
  • 日志数: 178
  • 建立时间: 2007-02-02
  • 更新时间: 2008-08-06

RSS订阅

Open Toolbar