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

MSSQL
用SQL创建数据库
无法用TCP/IP协议连接远端SQL Server数据库问题
SQL Server中各个系统表的作用
SQL中的五种数据类型
使用Sql server进行分布式查询
使用sql server中的全文索引
T-SQL 查询中使用的函数之系统函数
SQL 的一些核心语句
缩小SQL Server数据库日志
怎样配置SQL Server发送电子邮件
无数据库日志文件恢复数据库方法两则(1)
无数据库日志文件恢复数据库方法两则(2)
恢复SQL Server系统数据库
利用事务日志来恢复Update、Delete误操作引起的数据丢失
问:如何将 XML 文件导入 SQL Server 2000?
关于SQL Server中几个未公布的访问注册表的扩展存储过程
SQL Server安全规划全攻略
SQL注入漏洞全接触--入门篇(一)
SQL注入漏洞全接触--入门篇(二)
SQL注入漏洞全接触--进阶篇(一)

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 98 ::
收藏到网摘: 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的底数改成相应的进制就可以了。

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

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