如何计算字符 -
的出现次数在 varchar2 字符串中?
例子:
select XXX('123-345-566', '-') from dual;
----------------------------------------
2
最佳答案
干得好:
select length('123-345-566') - length(replace('123-345-566','-',null))
from dual;
从技术上讲,如果您要检查的字符串仅包含您要计数的字符,则上述查询将返回 NULL;以下查询将在所有情况下给出正确答案:
select coalesce(length('123-345-566') - length(replace('123-345-566','-',null)), length('123-345-566'), 0)
from dual;
coalesce
中的最后一个 0捕获您在空字符串中计数的情况(即 NULL,因为在 ORACLE 中 length(NULL) = NULL)。
关于sql - 如何计算 Oracle varchar 值中某个字符的出现次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8169471/