关于Oracle REGEXP_COUNT函数用法总结

REGEXP_COUNT 统计字符出现的次数函数,Oracle11g后引入了此函数。

  1. 语法

REGEXP_COUNT (source_char, pattern [, position [, match_param]])

 示例,使用LENGTH( )组合REGEXP_COUNT函数实现统计字符'#'出现的次数:

SELECT REGEXP_COUNT('00000000,11000000,11011200,#1101127200,1101127201,1101127202,#1101127203','#') COUNT FROM DUAL;

SELECT LENGTH(REGEXP_REPLACE('00000000,11000000,11011200,#1101127200,1101127201,1101127202,#1101127203','1+')) COUNT FROM DUAL;

  1. 大小写字符统计
    REGEXP_COUNT默认区分大小写统计,等同于全参形式:

SELECT REGEXP_COUNT('00000000,11000000,11011200,#A1101127200,1101127201,1101127202,#1101127203','a',1,'c') COUNT FROM DUAL;

 区分大小写敏感统计,启用'i'参数即可:

SELECT REGEXP_COUNT('00000000,11000000,11011200,#A1101127200,1101127201,1101127202,#1101127203','a',1,'i') COUNT FROM DUAL;

  1. 从指定位置查找
    REGEXP_COUNT倒数第二个参数表示开始检索关键字的位置,如下:

SELECT REGEXP_COUNT('00000000,11000000,11011200,#A1101127200,1101127201,1101127202,#1101127203','a',30,'i') COUNT FROM DUAL;

REGEXP_REPLACE函数
另一种方式,可通过REGEXP_REPLACE函数匹配正则表达式实现,如下统计字符'#'出现的次数:

SELECT LENGTH(REGEXP_REPLACE('00000000,11000000,11011200,#1101127200,1101127201,1101127202,#1101127203','1+')) COUNT FROM DUAL;


  1. #
上一篇:可将数据库表字段转换为Java代码驼峰字段SQL的实现


下一篇:基于存储过程实现批量复制表(Procedure)的方案实现