巧用一条SQL 实现其它进制到十进制转换
http://tech.ddvip.com 2008年02月19日 社区交流
本文详细介绍巧用一条SQL 实现其它进制到十进制转换
问:怎样实现ORACLE中用一条SQL实现其它进制到十进制的转换?
答:具体示例如下:
-----二进制转换十进制-----------------
selectsum(data1)
from(selectsubstr('1101',rownum,1)*power
(2,length('1101')-rownum)data1
fromdual
connectbyrownum<=length('1101'))
-----八进制转换十进制-----------------
selectsum(data1)
from(selectsubstr('1101',rownum,1)*power
(8,length('1101')-rownum)data1
fromdual
connectbyrownum<=length('1101'))
-----十六进制转换十进制-----------------
selectsum(data1)
from(select(CASEupper(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'
ELSEsubstr('2D',rownum,1)
END)*power(16,length('2D')-rownum)data1
fromdual
connectbyrownum<=length('2D'))
注释:
对其它进制可以根据例子将power的底数改成相应的进制就可以了。
本文只是一个例子,大家可以把它封装成一个通用函数进行实用。
大家在试的时候将里面相应的其它进制的数值换成自己的数据就可以了(有多处)。
来源:豆豆网转载 作者:赛迪网 han 责编:豆豆技术应用
- Oracle 10g 教程
- Oracle 故障处理
- Oracle 存储过程
- Oracle 备份恢复
- Oracle 性能调优
- Oracle 9i 教程
- Oracle 11g 教程
- Oracle 启动
- Oracle 命令
- Oracle 数据库管理
- Oracle 时间
- Oracle 密码
- Oracle 用户
- Oracle 常见错误
- Oracle 建数据表
- Oracle 索引
- Oracle 数据库连接
- Oracle 锁
- Oracle RAC 专题
- Oracle exp/imp 命令
- Oracle 表空间
- Oracle 查询
- Oracle 函数
- Oracle PL/SQL 专题
- 更多Oracle 专题>>>