Oracle中用SQL语句实现进制间互相转换
作者:互联网 文章来源:互联网 更新时间:2013-7-23

 

    本文用实际代码来实现进制间转换。

对其它进制可以根据例子将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))
收藏 】 【打印】 【关闭
  最新文章
  点击排行
盛世互联(中国)网络技术有限公司 深圳市及时网络技术有限公司 联合版权 中国市场授予<<中国服务品牌企业>>
客服热线:0755-8376 8888(120线) 免费热线:800-830-9577 800-830-9377 ICP经营许可证: 粤B2-20064003号
北京客服:010-51663652 珠海客服:0756-6171956 深圳客服:0755-83765888
广州客服:020-61139366 彩文传真:0755-83765599
商务地址:中国.深圳经济特区.罗湖区人民南路深圳发展中心大厦10层