用Oracle SQL語句來實(shí)現(xiàn)進(jìn)制間的相互轉(zhuǎn)換
以下的文章主要介紹的是用Oracle SQL語句來實(shí)現(xiàn)進(jìn)制間的相互轉(zhuǎn)換,此文用的是實(shí)際相關(guān)代碼去實(shí)現(xiàn)進(jìn)制間的相關(guān)轉(zhuǎn)換。對(duì)其它別的相關(guān)進(jìn)制是根據(jù)實(shí)際例子,將power的底數(shù)改成相應(yīng)的進(jìn)制就可以了。
以下介紹Oracle SQL語句:
本文只是一個(gè)例子,大家可以把它封裝成一個(gè)通用函數(shù)進(jìn)行實(shí)用。大家在試的時(shí)候?qū)⒗锩嫦鄳?yīng)的其它進(jìn)制的數(shù)值換成自己的數(shù)據(jù)就可。
二進(jìn)制轉(zhuǎn)換十進(jìn)制
- select sum(data1)
- from (select substr('1101', rownum, 1) * power(2, length('1101') - rownum) data1
- from dual
- connect by rownum <= length('1101'))
八進(jìn)制轉(zhuǎn)換十進(jìn)制
- select sum(data1)
- from (select substr('1101', rownum, 1) *
- power(8, length('1101') - rownum) data1
- from dual
- connect by rownum <= length('1101'))
十六進(jìn)制轉(zhuǎn)換十進(jìn)制
- 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'))
以上的相關(guān)內(nèi)容就是對(duì)Oracle SQL語句實(shí)現(xiàn)進(jìn)制間互相轉(zhuǎn)換的介紹,望你能有所收獲。
【編輯推薦】