问题的提出有一個字符串﹐類似AAAAA123.456A(AA)A﹐如何用一句SQL將123.456提出來?
A指的是不同的漢字,咋辦?
解决方法:
如果是字符就好办,
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