怎样在Oracle中用SQL语句实现进制间互相转换
本文用实际代码来实现进制间转换。
对其它进制可以根据例子将power的底数改成相应的进制就可以了。本文只是一个例子,大家可以把它封装成一个通用函数进行实用。大家在试的时候将里面相应的其它进制的数值换成自己的数据就可。
二进制转换十进制
selectsum(data1)from(selectsubstr('1101',rownum,1)*power(2,length('1101')-rownum)data1fromdualconnectbyrownum<=length('1101'))
八进制转换十进制
selectsum(data1)from(selectsubstr('1101',rownum,1)*power(8,length('1101')-rownum)data1fromdualconnectbyrownum<=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)data1fromdualconnectbyrownum<=length('2D'))
分享到: