Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como contar o número de ocorrências de um caractere em um valor varchar do Oracle?


Aqui você vai:
select length('123-345-566') - length(replace('123-345-566','-',null)) 
from dual;

Tecnicamente, se a string que você deseja verificar contiver apenas o caractere que deseja contar, a consulta acima retornará NULL; a seguinte consulta dará a resposta correta em todos os casos:
select coalesce(length('123-345-566') - length(replace('123-345-566','-',null)), length('123-345-566'), 0) 
from dual;

O 0 final em coalesce pega o caso em que você está contando em uma string vazia (ou seja, NULL, porque length(NULL) =NULL no ORACLE).