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

MSSQL
SQL Server 2008 层次ID数据类型
超全sql语句全集值得收藏
深入了解SQL Server 2008高可用性
Mysql服务无法启动的1067错误解决
MySQL实现SQL Server的sp_executesql
SQL中自己创建函数 分割字符串
Sql server 2005 找出子表树
SQL Server数据库备份多种方法
如何恢复/修复SQL Server的MDF文件
浅析SQL Server 2008企业级新特性
SQL Server小知识:Processor Affinity
如何应对SQL Server数据库崩溃
微软SQLServer密码管理的危险判断
SQLServer 2005中如何列所有存储过程
sql server 带列名导出至excel
SQL Server中索引使用及维护
编写安全的SQL Server扩展存储过程
SQL Server数据库实用小技巧集合
给SQL Server传送数组参数的变通办法
SQL语句参考及记录集对象详解

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


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

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

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