Oracle
 sql >> Database >  >> RDS >> Oracle

Come contare il numero di occorrenze di un carattere in un valore Oracle varchar?

Ecco a te:

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

Tecnicamente, se la stringa che vuoi controllare contiene solo il carattere che vuoi contare, la query precedente restituirà NULL; la seguente domanda darà la risposta corretta in tutti i casi:

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

Lo 0 finale in coalesce rileva il caso in cui stai contando in una stringa vuota (cioè NULL, perché length(NULL) =NULL in ORACLE).