赛迪网 > IT技术 数据库 > 精彩更新
  IT资讯搜索
 
IT产品搜索

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

发布时间:2007.07.31 08:06     来源:赛迪网    作者:huawuque

ORACLE中用一条SQL实现其它进制到十进制的转换

问:怎样实现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) data1
          from dual
        connect by rownum <= length('2D'))

注:

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

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

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

(责任编辑:卢兆林)


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 通过分析SQL语句的执行计划优化SQL(四) (07-30) · 解析SQL Server 2005 溢用之:合并列值 (07-30)
· asp读sql数据时出现乱码问题的解决方法 (07-30) · 解析SQL Server7.0的六种数据移动方法 (07-30)
· SQLServer悲观锁定和乐观锁定应用实例 (07-30) · 快速掌握SqlServer下数据库链接的使用 (07-30)
· 细化解析:SQL Server2005查询计划指南 (07-30) · 不要在SQL Server中盲目地追求一句处理 (07-30)
· 解析SQLServer怎样才能访问sybase中的表 (07-30) · 怎样终止:SQL Server数据库的恢复过程 (07-29)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  博客·论坛 ·曾剑秋·项立刚·Java学习·网管