我有兩個無關的查詢。我需要從第一個查詢中選擇其列值不包含任何從另一個查詢返回的值的記錄。請建議一種方法來做到這一點。如何選擇記錄的值與Oracle中另一個查詢中的字符串列表不匹配?
讓我們說,第一個查詢返回這些記錄:
abc_123_xyz
def_456_hij
lmn_opq
rst_uvw
讓我們說,第二個查詢返回這些記錄:
123
456
預期的結果是:
lmn_opq
rst_uvw
我寫了一個匹配結果的查詢,它工作正常。但是當我添加NOT LIKE
條件時,它失敗。請幫忙!
select o.name
from (select pattern from PATTERN) p,
objects o
where o.name like '%'||p.pattern||'%';
假設模式表返回123,456
,它正確的值abc_123_xyz, def_456_hij
匹配。但是,如果我使用NOT LIKE
條件執行上述查詢,則無法僅返回其他兩條記錄。相反,它會返回所有四個值。這裏有什麼問題?