欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【巧用一条SQL语句实现其它进制到十进制转换】,下面是详细的分享!
巧用一条SQL语句实现其它进制到十进制转换
巧用一条SQL语句实现其它进制到十进制转换,具体实现方法如下:
-----二进制转换十进制-----------------
| 以下为引用的内容: 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')) |
注释:
对其它进制可以根据例子将power的底数改成相应的进制就可以了。
本文只是一个例子,大家可以把它封装成一个通用函数进行实用。
大家在试的时候将里面相应的其它进制的数值换成自己的数据就可以了(有多处)。
以上所分享的是关于巧用一条SQL语句实现其它进制到十进制转换,下面是编辑为你推荐的有价值的用户互动:
相关问题:在C#中如何将一个十进制数转换成一个8位的二进制数...
答:int i = 10; string a = Convert.ToString(i, 2); 得到a的值:1010 你要求8位,但是如果的10进制数是12345则转换的值是11000000111001 如果你非要求是8位的话,他转化的值肯定就不正确了。 >>详细
相关问题:SQL中如何将一个十进制数转换成16进制数,然后只显...
答:select replace(ltrim(replace(replace((master.dbo.fn_varbintohexstr(cast(CONVERT(bigint, col1) as binary )) COLLATE Latin1_General_CI_AS_KS_WS ),0,' '),'x',' ')),' ','0')from table >>详细
相关问题:如何将sql 中十六进制转换十进制
答:select Convert(int,0xF) --15select Convert(numeric(18,2),0x030100017D000000) --12.50--10进制转换为2,8,16进制Create Function DecTox(@A int,@Type Varchar(3))Returns Varchar(100)AsBegin --从右到左,每一位乘上基数的i-1次方的和 Decla... >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
