计算字符在字符串中出现的次数

创建测试用表:

CREATE OR REPLACE VIEW v AS
SELECT 'A,B,C' AS c FROM DUAL;

现在要求计算列c中“,”出现的次数,Oracle 11g 给出了新函数REGEXP_COUNT,我们可以直接引用。

SELECT REGEXP_COUNT(c, ',') AS cnt FROM v;

如果没有REGEXP_COUNT的版本,我们可以使用REGEXP_REPLACE迂回求值。

SELECT LENGTH(REGEXP_REPLACE(c, '[^,]')) AS cnt FROM v;

还可以使用TRANSLATE函数:

SELECT LENGTH(TRANSLATE(c, ',' || c, ',')) AS cnt FROM v;

posted on 2015-10-19 14:41  奈何作贼  阅读(216)  评论(0编辑  收藏  举报

导航