我想在列中搜索字符串的所有实例
例如,如果我有一个值为all good all bad all better
的列,我想找到all
的实例数。
我试过
select instr(column, 'all') from test_table;
但只返回第一次出现all
的位置。我正在使用Oracle 11g数据库。
有没有办法可以在Oracle db中找到特定字符串的所有实例?
答案 0 :(得分:2)
SELECT REGEXP_COUNT(column, 'all') AS Cnt
FROM test_table;
答案 1 :(得分:2)
由于您使用的是11g,因此您可以使用regexp_count
function。如果你想做一个区分大小写的计数
SELECT regexp_count( column, 'all' )
FROM table_name
如果您想要不区分大小写的计数
SELECT regexp_count( column, 'all', 1, 'i' )
FROM table_name
答案 2 :(得分:0)
这适用于MySQL - 未经过Oracle测试,但我认为没有理由不能使用它:
SELECT (LENGTH(column) - LENGTH(REPLACE(column, 'all', '')))/LENGTH('all') FROM table