Oracle:计算字符串中的子串数?

时间:2014-12-18 21:02:15

标签: oracle plsql

如何计算字符串中子字符串的出现次数?

2 个答案:

答案 0 :(得分:6)

从版本11g开始,regexp_count将执行此操作。

select regexp_count('abba', 'b') from dual;
   2 
select regexp_count('abba', 'b+') from dual;
   1 

答案 1 :(得分:1)

在11g之前的版本中,您可以:

select (length(string) - length(replace(string,substring,''))) / length(substring) as occ
from dual;

我们的想法是看看字符串中有多少空间被子字符串占用,然后,看看子字符串在该空间中的次数除以子字符串的长度。