从字符串中提取数字

问题的提出有一個字符串﹐類似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

请使用浏览器的分享功能分享到微信等