查找子字符串直到最后一次出现

Pra*_*nge 2 sql oracle plsql

我想获取字符串的子字符串,例如: filename_ip_time.pdf 我想选择 filename_ip,即最后一次出现“_”之前的字符串

Eri*_*ikL 5

使用 -1 作为 INSTR 的起始位置,从字符串末尾开始搜索:

select INSTR('filename_ip_time.pdf', '_', -1) from dual
Run Code Online (Sandbox Code Playgroud)

因此,如果你想选择 filename_ip,你应该这样做:

SELECT   SUBSTR ('filename_ip_time.pdf',
                 0,
                 (INSTR ('filename_ip_time.pdf', '_', -1)) - 1)
  FROM   DUAL
Run Code Online (Sandbox Code Playgroud)