请告诉我以下问题:
我在Oracle数据库中有两个表,一个包含完整数字,另一个包含部分表。
表1:
12323543451123
66542123345345
16654232423423
12534456353451
64565463345231
34534512312312
43534534534533
表2:
1232
6654212
166
1253445635
6456546
34534
435345
您能否建议一个连接这两个表的查询,并显示6456546和64565463345231之间的关系。主要的是表2包含比表1更多的数据,我需要找到表2中表1中没有的所有子串。
提前致谢!
答案 0 :(得分:0)
您可以尝试使用CONTAINS
运算符,如下所示:
SELECT * FROM Table2 JOIN Table1 ON Table1.id=Table2.id
WHERE NOT CONTAINS (Table2.data, Table1.data)
答案 1 :(得分:0)
试试这个:
with t as (
select 123 id from dual union all
select 567 id from dual union all
select 891 id from dual
), t2 as (
select 1112323 id from dual union all
select 32567321 id from dual union all
select 44891555 id from dual
)
select t.id, t2.id
from t, t2
where t2.id||'' like '%'||t.id||'%'
答案 2 :(得分:0)
表1中的数字是否在表1的设定位置?例如,每次1232在同一个地方,或者你必须搜索数字的刺痛。如果已设置,您可以使用内联选择或临时表,并创建搜索字符串的子字符串,然后在该字段上加入表或临时表。
答案 3 :(得分:0)
首先需要说明表1和表2中的数字是否重复,如果不是,那么我认为这个查询可以帮到你:
SELECT *
FROM Table_1
JOIN Table_2 ON Table_1.ID = Table_2.ID
WHERE Table_2.DATA LIKE Table_1.DATA