巧用一条SQL语句实现其它进制到十进制转换_Mssql数据库教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:在SQL Server 2008中运用表值参数(TVP)
问题:   当我们浏览SQL Server 2008的新特性的时候,我们发现一个很有趣的特性叫做表值参数(Table-Valued Parameter)。你能否给我们详细介绍一下我们可以如何利用这个新特性吗?   专家

巧用一条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 Server数据库增强版备份体验
老鸟说事:Microsoft SQL Server数据库增强版备份体验 在欧洲,有一首流传很广的民谚: 因为丢失一根铁钉,我们失去了一块马蹄铁; 因为失去一块马蹄铁,我们失去了一匹骏马; 因为失去

来源:模板无忧//所属分类:Mssql数据库教程/更新时间:2008-08-22
相关Mssql数据库教程