在oracle中的字符串中第n次出现子字符串后查找子字符串

时间:2018-03-15 17:21:07

标签: oracle

我想编写一个oracle查询来查找特定子字符串第n次出现后的子字符串无法找到它的解决方案 示例字符串 - ab ## cd ## gh 如何在第二次出现##

之后从字符串上获取gh,即字符串

2 个答案:

答案 0 :(得分:0)

这将在第二次出现##:

后返回所有内容
substr(string, instr(string, '##', 1, 2)+1) 

如果需要查找具有特定长度的子字符串,则只需将第三个参数添加到substr函数

substr(string, instr(string, '##', 1, 2)+1, 2) 

您也可以在查询中使用它:

select 
  substr(some_value, instr(some_value, '##', 1, 2)+1, 2) 
from some_table
where...

答案 1 :(得分:-1)

 SELECT 'ab##cd##gh' String,
 Substr('ab##cd##gh',Instr('ab##cd##gh','gh',-1,1),2) Substr
 FROM Dual;

STRING          SU
----------      --
ab##cd##gh      gh