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

时间:2013-04-15 09:10:35

标签: oracle11g

在oracle中

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

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

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

我该怎么做????

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

一种方式:

select regexp_replace('pSE1001335806_17950.dat','.*_([0-9]+).dat','\1') from dual