Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment compter le nombre d'occurrences d'un caractère dans une valeur Oracle varchar ?

Voilà :

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

Techniquement, si la chaîne que vous souhaitez vérifier ne contient que le caractère que vous souhaitez compter, la requête ci-dessus renverra NULL ; la requête suivante donnera la bonne réponse dans tous les cas :

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

Le 0 final dans coalesce attrape le cas où vous comptez dans une chaîne vide (c'est-à-dire NULL, car length(NULL) =NULL dans ORACLE).