如何获取teradata中字符串中子字符串出现次数的计数?

时间:2016-11-01 11:30:39

标签: teradata

我在teradata表格中有一个列,其字符串值类似于" page1 - > page2 - > page1 - > page3 - > page1 - page2 - > ... "

我想搜索特定页面并获取字符串中页面的出现次数。我无法找到任何能产生这种结果的函数。

1 个答案:

答案 0 :(得分:2)

没有内置功能,但有一个共同的解决方案:

从字符串中删除子字符串的所有出现并比较之前/之后的长度:

(Char_Length(string) - Char_Length(OReplace(string, searchstr))) / Char_Length(searchstr)

编辑:

对于通配符搜索,您可以使用REGEXP_REPLACE:

Char_Length(RegExp_Replace(RegExp_Replace(s, 'page1(.+?)page3', '#',1,0), '[^#]','',1,0))

对于`#',使用已知不在输入字符串中的字符。