查询子串在字符串中出现的次数

本文通过具体的SQL语句示例,展示了如何使用WM_CONCAT聚合函数和WITH子句进行复杂查询,同时介绍了另一种方法来统计字符串中特定字符出现的次数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

drop table test1;
drop table test;
create table test(姓名 varchar2(20));


insert into test values('a');
insert into test values('b');
insert into test values('d');
insert into test values('c');




create table test1(id number(2),manageuser varchar(40));




insert into test1 values(1,'a,b,c');
insert into test1 values(2,'a,b');
insert into test1 values(3,'a,b,c,d');
insert into test1 values(4,'a,c');






with tt as(
select wm_concat(t1.manageuser) mm from test1 t1)
select t.姓名, length(t2.mm)-length(replace(t2.mm,t.姓名,'')) 次数

from test t,tt t2



--11g方法

select tb1.姓名,count(*)
  from test tb1,
       (select regexp_substr(manageuser, '[^,]+', 1, level) 姓名
          from test1 tb2
        connect by level <= regexp_count(manageuser, '[,]') + 1
               and prior id = id
               and (prior dbms_random.value) is not null) tb2
 where tb1.姓名 = tb2.姓名
 group by tb1.姓名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值