在甲骨文中
我想显示下划线和点之间的数字
例如: pSE1001335806_ 17950 .dat 所以列将 = 17950
但是对于: pSE1001311462_ 4558 .dat 该列将是 = 4558
我怎样才能做到这一点????
在甲骨文中
我想显示下划线和点之间的数字
例如: pSE1001335806_ 17950 .dat 所以列将 = 17950
但是对于: pSE1001311462_ 4558 .dat 该列将是 = 4558
我怎样才能做到这一点????
单程:
select regexp_replace('pSE1001335806_17950.dat','.*_([0-9]+).dat','\1') from dual
您可以为此使用正则表达式;如果您可以将其概括为第二个字母数字字符块,那么这个简单的东西就可以了:
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