如何根据其他表列筛选表,只考虑字段的一部分



假设我有以下表(命名为table_1(:

Column1    Column2    Column3
A          123        'ABCDE'
B          333        'FGHIJ'
C          444        'KLMNO'

我有另一个表,像这个表(名为table_2(:

Column4
'BCD'      
'FGH'

现在,我想使用table_2过滤table_1。然而,正如你所看到的,第4列并没有包含第3列的全名,只是其中的一部分

select * from table_1 where Column3 like '%BCD%' or Column3 like '%FGH%'

但我想知道是否还有另一种方法,更聪明。

您可以使用existslike:

select t1.*
from table_1 t1
where exists (
select 1 from table_2 t2 where t1.column3 like '%' || t2.column4 || '%'
)

相关内容

最新更新