操作系统  办公  实用知识  设计  开发  WEB开发  移动开发  数据库  软件工程  网管  安全  管理  信息化  答疑  渠道 

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

2008-3-21 网友评论 0 条 点击进入论坛

  本文主要讲解了在Oralce中如何通过一条SQL实现其他进制到十进制的转换实例代码,大家可以把它封装成一个通用函数来进行使用,面向其它进制时大家可以根据例子将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'))

已有 0 位对此文章感兴趣的网友发布了看法    
我来评两句 登录邮箱: 密码:
  匿名发表
今日推荐
技术文库(共有 46430 篇文章)
操作系统
办公软件
实用知识
网络管理
软件开发
WEB开发
软件工程
数据库
设计在线
信息安全
行业信息化
管理信息化
重点推荐
电子杂志订阅
点击电子杂志名称查看样刊
输入E-mail地址即可订阅
E-mail