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

作者:han 时间:2009-01-19 13:16:00 

问:怎样实现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的底数改成相应的进制就可以了,本文只是一个例子,大家可以把它封装成一个通用函数进行实用。 大家在试的时候将里面相应的其它进制的数值换成自己的数据就可以了(有多处)。

标签:
0
投稿

猜你喜欢

  • 滚动条样式的css代码介绍

    2008-10-21 10:56:00
  • sql分类汇总及Select的自增长脚本

    2012-07-21 14:40:14
  • ASP.NET中使用SQL存储过程的方法

    2007-08-24 09:31:00
  • Dreamweaver制作技巧四则

    2008-01-04 09:42:00
  • Javascript的错还是浏览器的问题——2009年为何显示为109年

    2009-01-11 18:19:00
  • 如何定义记录集打开的游标类型?

    2009-11-15 20:19:00
  • 快速解决SQL server 2005孤立用户问题

    2009-01-04 14:02:00
  • mysql慢查询的分析方法

    2010-08-03 14:51:00
  • JavaScript 获取客户端计算机硬件及系统信息

    2009-01-13 17:59:00
  • Google的产品设计指导思想

    2008-03-23 14:15:00
  • javascript面向对象编程(四)

    2008-03-07 14:20:00
  • oblog4.6转换ucenterHome1.5过程全记录,提供老用户无法登陆的补丁

    2009-10-29 12:04:00
  • Firefox 的 Jetpack 扩展案例分析:Gmail 邮件提醒

    2009-10-15 12:41:00
  • Python保存数据至MySQL时中文问题

    2011-02-23 12:06:00
  • 关于select元素的两个小问题

    2008-12-25 13:41:00
  • 剑走偏锋:体验ebay的AIR

    2008-11-13 11:51:00
  • 优化 MySQL 语句的十个建议

    2012-05-08 07:14:36
  • 不同操作系统下的mysql数据库同步

    2008-12-22 14:41:00
  • 一个数组随机不重复问题

    2008-09-02 20:05:00
  • ASP实现类似Java中的Linked HashMap类

    2010-04-03 20:49:00
  • asp之家 网络编程 m.aspxhome.com