從字串中提取數字

lastwinner發表於2005-10-13

問題的提出有一個字串﹐類似AAAAA123.456A(AA)A﹐如何用一句SQL將123.456提出來?
A指的是不同的漢字,咋辦?

[@more@]

解決方法:
如果是字元就好辦,
select TRIM(TRanslate('AAAAA123.456A(AA)A','A()',' ')) from dual
A()處替換為除數字外的所有字元即可

如果含有漢字,hmxxyy提供如下方法
俺來挑戰一下SQL, 帶漢字的. 但願能引出玉來

(9iR2)

SQL>
1 select result
2 from
3 (
4 select level, replace(sys_connect_by_path(x, '/'), '/') result
5 from
6 (select rownum lvl, x from (select level lvl, substr('木炭abcd1234.34ef火鍋gh', level, 1) x
7 from dual connect by 1 = 1 and level <= length('木炭abcd1234.34ef火鍋gh'))
8 where x between '0' and '9' or x = '.')
9 connect by prior lvl = lvl -1
10 start with lvl = 1
11 order by level desc
12 )
13* where rownum = 1

RESULT
--------------------------------------------------------------------------------
1234.34

原文地址
http://www.itpub.net/337673.html

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29867/viewspace-807876/,如需轉載,請註明出處,否則將追究法律責任。

相關文章