sql >> Databasteknik >  >> RDS >> Oracle

Hur räknar man antalet förekomster av en karaktär i ett Oracle-varchar-värde?

Varsågod:

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

Tekniskt sett, om strängen du vill kontrollera endast innehåller det tecken du vill räkna, kommer ovanstående fråga att returnera NULL; Följande fråga ger rätt svar i alla fall:

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

Den sista nollan i coalesce fångar fallet där du räknar i en tom sträng (dvs. NULL, eftersom length(NULL) =NULL i ORACLE).



  1. ORA-01017 Ogiltigt användarnamn/lösenord vid anslutning till 11g-databas från 9i-klient

  2. MySQL Alter Table Kolumn

  3. Hur JSONPath Wildcard-steget (**) fungerar i MariaDB

  4. MySQL - Den här versionen av MySQL stöder ännu inte 'LIMIT &IN/ALL/NOY/SOME underquery