sql >> Base de Datos >  >> RDS >> Oracle

¿Cómo contar el número de ocurrencias de un carácter en un valor Oracle varchar?

Aquí tienes:

select length('123-345-566') - length(replace('123-345-566','-',null)) 
from dual;

Técnicamente, si la cadena que desea verificar contiene solo el carácter que desea contar, la consulta anterior devolverá NULL; la siguiente consulta dará la respuesta correcta en todos los casos:

select coalesce(length('123-345-566') - length(replace('123-345-566','-',null)), length('123-345-566'), 0) 
from dual;

El 0 final en coalesce detecta el caso en el que está contando en una cadena vacía (es decir, NULL, porque length(NULL) =NULL en ORACLE).