文本版|topic 高级搜索
   名人堂 帮助 论坛制度 意见反馈 | 首页 博客 周新贴 招聘 专题 新闻
RSS 底部
 
社区导航: 专家门诊   网络技术   操作系统   数据库   程序设计   系统应用   考试认证   CIO及信息化   站长交流   综合交流   下载基地  51CTO产品服务 设为首页 | 收藏本站
51CTO技术论坛» 微软SQL Server专区 » SQL Server数据库管理 » 巧用一条SQL语句实现其它进制到十进制转换       [ 打印]  [ 订阅]  [ 收藏]  [ 推荐给朋友]   [ 本帖文本页]

论坛跳转:
     
标题: [转载] 巧用一条SQL语句实现其它进制到十进制转换  ( 查看:93  回复:0 )   
 
angelmartina
助理工程师  点击可查看详细


帖子 238
精华 0
无忧币 1143
积分 1135
阅读权限 40
注册日期 2007-9-3
最后登录 2007-11-21 离线

[查看资料]  [发短消息]  [Blog
  QQ       
发表于:2007-10-3 11:09   标题:巧用一条SQL语句实现其它进制到十进制转换
上一帖 |
巧用一条SQL语句实现其它进制到十进制转换,具体实现方法如下:
  -----二进制转换十进制-----------------

以下是引用片段:
  select sum(data1)
  from (select substr('1101', rownum, 1) * power
  (2, length('1101') - rownum) data1
  from dual
  connect by rownum
  -----八进制转换十进制-----------------

以下是引用片段:
  select sum(data1)
  from (select substr('1101', rownum, 1) * power
  (8, length('1101') - rownum) data1
  from dual
  connect by rownum
  -----十六进制转换十进制-----------------

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



认真生活,努力微笑!
[img]http://photo.1001m.com/updata/2007/4/15/22/1176646119975.jpg[/img]  
2007-10-3 11:091楼
[ 顶部 ]
     
论坛跳转:  

| | |

标记已读 · 删除论坛Cookies · 文本版 · WAP
 
| 诚征版主 | 版主堂 | 意见建议 | 大史记 | 论坛地图
Copyright©2005-2008 51CTO.COM  Powered by Discuz!
本论坛言论纯属发布者个人意见,不代表51CTO网站立场!如有疑义,请与管理员联系。
京ICP备05051492号