0

在甲骨文中

我想显示下划线和点之间的数字

例如: pSE1001335806_ 17950 .dat 所以列将 = 17950

但是对于: pSE1001311462_ 4558 .dat 该列将是 = 4558

我怎样才能做到这一点????

4

2 回答 2

0

单程:

select regexp_replace('pSE1001335806_17950.dat','.*_([0-9]+).dat','\1') from dual
于 2013-04-15T09:44:45.450 回答
0

您可以为此使用正则表达式;如果您可以将其概括为第二个字母数字字符块,那么这个简单的东西就可以了:

regexp_substr(<value>, '([[:alnum:]]+)', 1, 2)

使用 CTE 生成样本值:

with files as
(
    select 'pSE1001335806_17950.dat' as filename from dual
    union all select 'pSE1001311462_4558.dat' from dual
)
select regexp_substr(filename, '([[:alnum:]]+)', 1, 2)
from files;

REGEXP_SUBSTR(FILENAME,'([[:ALNUM:]]+)',1,2)
--------------------------------------------------------------------------------
17950
4558
于 2013-04-15T09:38:30.233 回答