如何在子句中为成千上万个项目写类似条件

时间:2019-08-15 00:58:05

标签: sql oracle

我想根据表PARTINPUT的输入,使用LIKE条件来过滤表PartMaster的项目。这两个表都有多个条目。

表1:PartMaster

PartNo
======
Part1.DRW
Part2.DRW
Part3.ASM
Part3.PRT
Part1.XLT
Part2.ASM
Part3.ASM
Part3.DRW
Part4.ASM
Part4.DRW


Part5000.PRT

表2:PartINPUT

PART
=====
Part1
Part2
Part3
    .
.
.
PART5000

我正在尝试从PartMaster表中找到一个项目

select *
from PartMaster PM 
where PM.PartNo in (select PI.PART from PARTINPUT PI 
                    where PM.PartNo like '%PI.PART%')

我尝试过:

select *
from PartMaster PM
where PM.PartNo in (select PI.PART from PARTINPUT PI where PM.PartNo like '%PI.PART%)'

select *
from PartMaster PM
where PM.PartNo in (select PI.PART from PARTINPUT PI where PM.PartNo like '%' || PI.PART ||'%')'

结果应基于第二个输入表中匹配的%part%返回表PartMaster中的所有项目。

1 个答案:

答案 0 :(得分:1)

如果我没错,您想加入partno的{​​{1}}和一个点之间的partmaster的{​​{1}}。 (或者在这种情况下,也可以不带点,将其从查询中删除)。

part

db<>fiddle