巧用一條SQL語句實現其它進制到十進制轉換,具體實現方法如下:
中國站長.站
-----二進制轉換十進制----------------- 中.國站長站
以下為引用的內容:
select sum(data1)
from (select substr(''1101'', rownum, 1) * power
(2, length(''1101'') - rownum) data1
from dual
connect by rownum <= length(''1101''))
-----八進制轉換十進制-----------------
Www_Chinaz_com
以下為引用的內容:
select sum(data1)
from (select substr(''1101'', rownum, 1) * power
(8, length(''1101'') - rownum) data1
from dual
connect by rownum <= length(''1101''))
-----十六進制轉換十進制----------------- Www.Chinaz.com
以下為引用的內容:
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的底數改成相應的進制就可以了。 Www~Chinaz~com
本文只是一個例子,大家可以把它封裝成一個通用函數進行實用。