巧用一条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: