壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 964|回复: 7

[二次开发] 查询某字符在指定字符串出现的次数

[复制链接]
发表于 2012/10/25 10:45:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
在oracle中没有这样的函数【在我认识范围内是没有】,所以只能通过几个函数的联合才能制造出这样的函数。今天偶然间在做一个存储过程中,需要用到这样的函数,写了一个,应该还有其他方法能够实现吧,欢迎讨论,交流心得。
不知道有没有朋友发过,觉得也许会用得上,就发一下吧。


SELECT (LENGTH('HELLO WORLD!') - LENGTH(REPLACE('HELLO WORLD!','L',''))) MAX_CNT
  FROM DUAL
;

--results:
max_cnt
3


发表于 2012/10/25 11:29:07 | 显示全部楼层
本帖最后由 chenjing325 于 2012/10/25 11:31 编辑

不错,你这个思路挺好的

点评

不好意思,没看清楚主题,如果后面指定是字符而不是字符串的话应该还是没问题的  发表于 2012/10/25 11:30
 楼主| 发表于 2012/10/25 11:40:21 | 显示全部楼层
chenjing325 发表于 2012/10/25 11:29
不错,你这个思路挺好的

对的,这个方法对于指定是多个字符的话,可能会有问题,这个也是视情况而定的。
比如说,如下列字符串结构:


D2053@@OBE-D00C-038@@VCBE-00H02-019@@VCBE-H0102-015@@V1BE-2014610@@42102-46104
发表于 2012/10/26 13:11:07 | 显示全部楼层
SELECT REGEXP_COUNT('HELLO WORLD!','L')  from dual
发表于 2012/10/26 13:17:55 | 显示全部楼层
or
SELECT COUNT(*)
FROM (SELECT SUBSTR('HELLO WORLD!', ROWNUM, 1) x
      FROM dual
      CONNECT BY ROWNUM <= LENGTH('HELLO WORLD!'))
WHERE x = 'L'



 楼主| 发表于 2012/10/26 15:12:47 | 显示全部楼层
joetsu 发表于 2012/10/26 13:11
SELECT REGEXP_COUNT('HELLO WORLD!','L')  from dual

哥们儿,我试了这条语句半天没有结果,后来发现这个牛掰函数是在11g刚加进去的,哎呀,我们公司的10g不支持啊!
看来我想体验只能回去使用自己本子的虚拟机上11g看看结果了。不过,赞一个!~
发表于 2012/11/2 21:56:55 | 显示全部楼层
不错,顶顶顶不错,顶顶顶不错
发表于 2012/11/2 21:57:13 | 显示全部楼层
不错,顶顶顶不错,顶顶顶不错
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/29 21:07 , Processed in 0.018756 second(s), 18 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表