sql >> Databáze >  >> RDS >> Oracle

Jak spočítat počet výskytů znaku v hodnotě varchar Oracle?

Tady to je:

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

Technicky vzato, pokud řetězec, který chcete zkontrolovat, obsahuje pouze znak, který chcete počítat, výše uvedený dotaz vrátí hodnotu NULL; následující dotaz dá správnou odpověď ve všech případech:

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

Konečná 0 v coalesce zachytí případ, kdy počítáte do prázdného řetězce (tj. NULL, protože length(NULL) =NULL v ORACLE).



  1. Jak definovat primární klíč automatického zvýšení na serveru SQL Server

  2. Ikony pro vývojáře SQL

  3. MariaDB LTRIM() vs LTRIM_ORACLE():Jaký je rozdíl?

  4. Hierarchický seznam typů událostí spouštění v SQL Server 2019