数据库技术>>SQL Server>>如何利一条SQL语句实现非十进制到十进制的转换
如何利一条SQL语句实现非十进制到十进制的转换
作者:转载自:更新时间:2012-9-7

xin3721网络学院为广大学员,准备了丰富了教学视频。为了更好的让大学配合视频进行学习,拓展学员的知识面,
我站特整理了大量的,技术文章,供学员参考。因此本教案需配合视频教程学习,
视频教程地址为:sql server 2008

利用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的底数改成相应的进制就可以了。

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

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

关于我们--广告服务--免责声明--本站帮助-友情链接--版权声明--联系我们