电脑软硬件应用网
当前位置: 电脑软硬件应用网 > 设计学院 > 网络编程 > 数据库 > 正文
用一条SQL实现其它进制到十进制的转换
用一条SQL实现其它进制到十进制的转换
2008-5-16 12:01:36  文/Humphrey   出处:赛迪网   

问:怎样实现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的底数改成相应的进制就可以了。


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


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

  • 上一篇文章:

  • 下一篇文章:
  • 最新热点 最新推荐 相关文章
    Mysql数据库名和表名在不同系统下的…
    mysql全文搜索:sql的写法
    解答SQL不许在视图定义ORDER BY子句…
    数据库海量数据查询与优化
    SQL分组实例使用GROUP BY做示例
    图解Slide Window来做SqlServer性能…
    解决附加SQL Server数据库后出现只读…
    一次SQL调优数据库性能问题后的过程
    使用sql语句分离和附加数据库的方法
    一起探讨如何改善数据库性能瓶颈问题
    关于45IT | About 45IT | 联系方式 | 版权声明 | 网站导航 |

    Copyright © 2003-2011 45IT. All Rights Reserved 浙ICP备09049068号