#sql #oracle #impala
Вопрос:
Я ищу альтернативу Oracle Regexp_count в Impala. Есть ли какая-либо альтернатива или есть какой-либо способ реализовать regexp_count в Impala?
Ответ №1:
Замените шаблон каким-нибудь символом, которого нет в вашем шаблоне, скажем, тильдой»~», затем удалите все, что не является тильдой, затем вычислите длину строки. Если начальная строка может содержать тильды, удалите их все раньше.
Например, чтобы вычислить, сколько раз шаблон test
встречается в строке ( также содержит тильды ) 'test ~something ~test, one more test~'
:
length(--get length (the number of tildes) regexp_replace( regexp_replace( regexp_replace('test ~something ~test, one more test~','~',''), --remove all tildes 'test','~'), --replace pattern with tilde '[^~] ','') --remove everything that is not tilde ) --calculate the number of tildes
Это вернет 3