在oracle中
我想显示下划线和点之间的数字
例如:pSE1001335806_ 17950 .dat 所以列将是= 17950
但是:pSE1001311462_ 4558 .dat 该列将是= 4558
我该怎么做????
答案 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