当前位置: 首页 > 图文教程 > 数据库 > MSSQL > 巧用一条SQL语句实现其它进制到十进制转换

MSSQL
SQL Server服务器内存升级后的烦恼
SQL Server数据库超级管理员账号防护
微软证实最新的关键SQL Server漏洞
在SQL Server 2000数据仓库中使用分区
深入探讨SQL Server 2008商务智能(BI)
正确理解SQL Server四类数据仓库建模方法
SQL Server中读取XML文件的简单做法
教程:打造SQL Server2000的安全策略
Windows存储 SQL行溢出 差异备份及疑问
保护SQL服务器的安全 用户识别问题
SQL Server数据在不同数据库中的应用
关于SQL Server中索引使用及维护简介
在SQL Server中使用CLR调用.NET方法
50种方法巧妙优化SQL Server数据库
比较SQL Server约束和DML触发器
从IIS到SQL Server数据库安全
在SQL server2005数据库下创建计划任务
SQL Server保障数据一致性的法宝
数据库备份过程中经常遇到的九种情况
轻松解决ORA-12560: TNS 协议适配器错误

MSSQL 中的 巧用一条SQL语句实现其它进制到十进制转换


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 137 ::
收藏到网摘: n/a

巧用一条SQL语句实现其它进制到十进制转换,具体实现方法如下:

-----二进制转换十进制-----------------

-----八进制转换十进制-----------------

以下为引用的内容:
  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的底数改成相应的进制就可以了。

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

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