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

时间:2007-09-25 04:57:00   来源:  作者:  点击:次  出处:技术无忧
关键字:

问:怎样实现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) data1from dualconnect by rownum <= length('2D'))

注释:

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

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

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

技术无忧.com


相关文章

    无相关信息

文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面

特别推荐