欢迎投稿

今日深度:

Oracle中用SQL语句实现进制间互相转换

Oracle中用SQL语句实现进制间互相转换


对其它进制可以根据例子将power的底数改成相应的进制就可以了。本文只是一个例子,大家可以把它封装成一个通用函数进行实用。大家在试的时候将里面相应的其它进制的数值换成自己的数据就可。

二进制转换十进制

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'))

相关文章】

  • 利用Oracle执行计划机制提高查询性能
  • 提高Oracle的查询统计速度方法简介
  • Oracle 10g中利用哈希函数提高查询速度

www.htsjk.Com true http://www.htsjk.com/shujukukf/17289.html NewsArticle Oracle中用SQL语句实现进制间互相转换 对其它进制可以根据例子将power的底数改成相应的进制就可以了。本文只是一个例子,大家可以把它封装成一个通用函数进行实用。大家在试的时候...
评论暂时关闭