oracle 同一字段中某个字符出现的次数

如题所述

假设求的是每个字段字符串中a出现的次数
select i-1,a.字段 from
((select length(字段) j,字段 from table_name) a
(select rownum i from dual where rownum<4000) b
where i<=j)
start with i=1
connect by i=piror i+1 and instr(a.字段,'a',1,i)>0
以上内容为想象没有试验,利用start with从1开始,最高到instr(a.字段,'a',1,i)=0,假设这时i是6,那么也就是i在等于1,2,3,4,5时都能查到a,那么i-1=5,也就是在这个字段中a的重复次数是5。
不过现在仅仅是一个想法,没有环境区测试,前面rownum<4000是尽可能扩大i的范围,防止出现超限的情况。j也是控制i的范围的。
可能还需要些改动,不过意思差不多。

不过个人认为最好的办法是写函数,用函数来做,比用sql来做好很多,也好调试,不过写函数比较繁琐,循环、计数、截取,输出,所以我就想象了这样一个sql。
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-11-26
没看懂问题,说详细一点~
select count(zd) as 次数 table_name where zd like '%a%';
第2个回答  2014-11-26
select count(1) from tablename where ziduan ='a';
相似回答