oracle 字符串匹配查询

发布网友 发布时间:2022-04-26 01:13

我来回答

7个回答

热心网友 时间:2022-04-09 22:33

select t.* from t1 t where regexp_like(t.str,'[ac]');

oracle中的函数regexp_like,很好用的哦,其中[ac]为正则表达式,意思是,在str字段的数据里,匹配有包含a或者c的数据。具体请在网上查询oracle数据库中regexp_like函数的应用,希望能帮助你。

追问查询结果不够精确,因为如果是字符串是a01,c02,就会查到不匹配的数据,后面的正则式该怎么写

追答这是可以的啊,[ac]正则表达式的意思是,在所有的字符串中找到包含有a或者c的的字符串,如果字符串中有大写的那么就改成[aAcC]就可以了。

热心网友 时间:2022-04-09 23:51

简单点就是这样:

select str from t1 where instr(str,'a')>0 or instr(str,'c')>0 or instr(str,',')>0) ;

或者使用正则表达式

select str from t1 where regexp_like(t.str,'[a,c]');

热心网友 时间:2022-04-10 01:25

select * from T1 where ','||str||',' like '%,a,%' or ','||str||',' like '%,c,%'

热心网友 时间:2022-04-10 03:17

select * from t1 where str like'%a%' or str like'%c%'

热心网友 时间:2022-04-10 05:25

select * from T1 where str like %a,c%;

热心网友 时间:2022-04-10 07:49

select * from t1 where instr(str,'a,c')>0

热心网友 时间:2022-04-10 10:31

select t1.str
from t1
where exists
(select 1
from (select REGEXP_SUBSTR('a,c', '[^,]+', 1, level) base
from al
connect by rownum <=
length('a,c') - length(replace('a,c', ',', '')) + 1)
where instr(',' || t1.str || ',', ',' || base || ',') > 0)

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com