oracle 两表中两列模糊查询,具体例子如下:

A表addr列中有字符串“国强路9号星辰电子”;B表key列中有字符串“星辰电子;公司;厂”。如何将两表用ORACLE语句进行模糊匹配?... A表addr列中有字符串“国强路9号星辰电子”;B表key列中有字符串“星辰电子;公司;厂”。如何将两表用ORACLE语句进行模糊匹配? 展开
 我来答
badkano
2017-11-13 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885370
团长

向TA提问 私信TA
展开全部

创建表插入数据:

create table a
(addr varchar2(100));

insert into a values ('国强路9号星辰电子');

create table b
(key varchar2(100));

insert into b values ('星辰电子;公司;厂');
commit;

执行:

select a.addr,t.key from a,
(select t1.key,
REGEXP_SUBSTR(t1.key ,'[^;]+',1,l)
rolecode
from (
select key from b
) t1,
(SELECT LEVEL l FROM DUAL CONNECT BY LEVEL<=100) b
WHERE l <=LENGTH(t1.key) - LENGTH(REPLACE(t1.key,';'))+1) t
where instr(a.addr,t.rolecode)>1;

结果:

追问
真的是大神,帮我解决了难题。不过,还想问大神一个简单的问题,
最后一句instr(a.addr,t.rolecode)>1表示匹配上的,那如果想要匹配不上的应该怎么改?
匿名用户
2019-04-01
展开全部
两个表不是没有任何关联的情况下可以用吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式