oracle 同一字段中某个字符出现的次数
3个回答
展开全部
假设求的是每个字段字符串中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。
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。
展开全部
没看懂问题,说详细一点~
select count(zd) as 次数 table_name where zd like '%a%';
select count(zd) as 次数 table_name where zd like '%a%';
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select count(1) from tablename where ziduan ='a';
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询