-oracle数据库恢复-Raid5数据恢复-RAID0数据恢复oracle 开发区 → oracle中利用SQL 实现其它进制到十进制的转换


  共有2344人关注过本帖树形打印

主题:oracle中利用SQL 实现其它进制到十进制的转换

oracle数据恢复-RAID5数据恢复-raid数据恢复
admin
  1楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


数据恢复 恢复数据
等级:管理员 帖子:412 积分:5738 威望:0 精华:0 注册:2003-12-30 16:34:32
oracle中利用SQL 实现其它进制到十进制的转换  发帖心情 Post By:2007-8-28 10:16:53

怎样实现ORACLE中用一条SQL实现其它进制到十进制的转换?
-----二进制转换十进制-----------------
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'))
 

注:


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


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




http://www.sosdb.com

qq:9417901

msn:glkgdj@hotmail.com

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部

返回版面帖子列表

oracle中利用SQL 实现其它进制到十进制的转换








签名