我的表的列为“ ID”,“ File_Name”
表
ID File_Name
123 ROSE1234_LLDAtIInstance_03012014_04292014_190038.zip
456 ROSE1234_LLDAtIInstance_08012014_04292014_190038.zip
我所需要的只是获取文件名中指定的第一个日期。
需要:
ID Date
123 03012014
456 08012014
最佳答案
这是一种假设第二个_之后的8个字符始终为真的方法。
它找到第一个_的位置,然后使用第一个+1的位置寻找第二个_的位置,然后在第二个_之后寻找8个字符
SELECT Id
, substr(File_name, instr(File_name,'_',instr(File_name,'_')+1)+1,8) as Date
FROM Table
要么
一种更优雅的方法是使用RegExp_Instr函数,从而无需嵌套instr。
SELECT Id, substr(File_name,REGEXP_INSTR(FileName,'_',1,2)+1,8) as date
FROM dual;