Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie kann man die Anzahl der Vorkommen eines Zeichens in einem Oracle-Varchar-Wert zählen?

Bitte schön:

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

Technisch gesehen, wenn die Zeichenfolge, die Sie überprüfen möchten, nur das Zeichen enthält, das Sie zählen möchten, gibt die obige Abfrage NULL zurück; Die folgende Abfrage liefert in allen Fällen die richtige Antwort:

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

Die letzte 0 in coalesce fängt den Fall ab, wo Sie in einem leeren String zählen (d.h. NULL, weil length(NULL) =NULL in ORACLE).