WEB开发网
开发学院数据库Oracle 巧用一条SQL 实现其它进制到十进制转换 阅读

巧用一条SQL 实现其它进制到十进制转换

 2008-02-19 12:40:32 来源:WEB开发网   
核心提示:问:怎样实现ORACLE中用一条SQL实现其它进制到十进制的转换? 答:具体示例如下:-二进制转换十进制-selectsum(data1)from(selectsubstr('1101',rownum,1)*power(2,length('1101')-rownum)data1fromd

问:怎样实现ORACLE中用一条SQL实现其它进制到十进制的转换?

答:具体示例如下:

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

  selectsum(data1)
  from(selectsubstr('1101',rownum,1)*power
  (2,length('1101')-rownum)data1
  fromdual
  connectbyrownum<=length('1101'))

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

  selectsum(data1)
  from(selectsubstr('1101',rownum,1)*power
  (8,length('1101')-rownum)data1
  fromdual
  connectbyrownum<=length('1101'))

-----十六进制转换十进制-----------------

  selectsum(data1)
  from(select(CASEupper(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'
  ELSEsubstr('2D',rownum,1)
  END)*power(16,length('2D')-rownum)data1
  fromdual
  connectbyrownum<=length('2D'))

注释:

对其它进制可以根据例子将power的底数改成相应的进制就可以了。

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

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

Tags:SQL 实现 其它

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接