巧用一条SQL 实现其它进制到十进制转换
2008-02-19 12:40:32 来源:WEB开发网问:怎样实现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的底数改成相应的进制就可以了。
本文只是一个例子,大家可以把它封装成一个通用函数进行实用。
大家在试的时候将里面相应的其它进制的数值换成自己的数据就可以了(有多处)。
- ››SQL Server 2008 R2 下如何清理数据库日志文件
- ››sqlite 存取中文的解决方法
- ››SQL2005、2008、2000 清空删除日志
- ››实现dedeCMS二级导航的简单方法
- ››实现discuz投票选项文字添加链接进入查看详情
- ››SQL Server 2005和SQL Server 2000数据的相互导入...
- ››sql server 2008 在安装了活动目录以后无法启动服...
- ››实现android socket 聊天与调试
- ››实现windows7系统3D切换页面的方法
- ››实现Windows7系统局域网发现共享
- ››实现Navicat for MySQL的替换功能方法
- ››实现Win 8系统F8进入安全模式的方法
更多精彩
赞助商链接