oracle sql模糊查询问题 -利来国际app

oracle sql模糊查询问题
写回答
jay
提问于6天前
oracle sql模糊查询问题


select name from b where b.id in(select id from a)


b表的id字段的值包含a表的id字段的值,我想使用这种方式来查询数据好像不行,请问有什么办法实现吗。

已知b表的id字段值包含a表的id字段值,但是a表的id字段值在哪个位置无规律,就是说不确定a表的值在b表的id字段具体哪个位置。

问题补充
写回答
5条回答
默认
最新
aisql 6天前

难道是我理解错了吗。我觉得一句话就可以搞定了啊。

select name from b where
exists(select 1 from a where b.id like ‘%’||a.id||’%’)

0
0
2
展开评论
c
cqiwen 6天前

我这有个笨办法,可以尝试下:

sql> create table a (id varchar2(20),name varchar2(30)); table created. sql> insert into a values('12ab','z3'); 1 row created. sql> insert into a values('45cd','l4'); 1 row created. sql> commit; commit complete. sql> create table b as select * from a; table created. sql> update b set id='012abc' where id='12ab'; 1 row updated. sql> commit; commit complete. sql> select * from b; id name -------------------- ------------------------------ 012abc z3 45cd l4 sql> insert into b values ('67g','w5'); 1 row created. sql> commit; commit complete. sql> select * from b; id name -------------------- ------------------------------ 012abc z3 45cd l4 67g w5 sql> create table c (name varchar2(40)); table created. declare cursor cur1 is select id from a; v_id varchar2(100); a_id varchar2(100); v_sql varchar2(1000); begin open cur1; loop fetch cur1 into v_id; exit when cur1%notfound; dbms_output.put_line('v_id is:'||v_id); select '%'||v_id||'%' into a_id from dual; v_sql := 'insert into c select name from b where id like :1'; dbms_output.put_line(v_sql); execute immediate v_sql using a_id; end loop; close cur1; end; / sql> select * from c; name ---------------------------------------- z3 l4
0
0
1
展开评论
kay
6天前

可以用select name from b inner join a on instr(b.id,a.id)>0

0
0
1
展开评论
darkathena
6天前

把表结构和数据拿出来举例

0
0
0
薛晓刚
6天前

select b.name from a,b where a.id=b.id不行吗?

感觉这是你要的。如果我没理解错的话

0
0
1
展开评论
回复问题
问题信息
请登录之后查看
邀请作答
暂无人订阅该标签,敬请期待~~
高分悬赏