我在teradata表格中有一个列,其字符串值类似于" page1 - > page2 - > page1 - > page3 - > page1 - page2 - > ... "
我想搜索特定页面并获取字符串中页面的出现次数。我无法找到任何能产生这种结果的函数。
答案 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))
对于`#',使用已知不在输入字符串中的字符。