select objectid
,name
,address
from library_t l
where not exists (select *
from d107 d
where l.objectid = d.objectid
)
select objectid
,name
,address
from library_t l
where l.objectid not in (select objectid
from d107
)
Run Code Online (Sandbox Code Playgroud)
如果两个objectid列都有索引,哪一个在oracle中更好?
使用NOT EXISTS.
目前执行计划可能是相同的,但如果将来更改任一列以允许NULL,NOT IN版本将需要做更多的工作.
关于NOT EXISTS和NOT IN的最重要的事情是,与EXISTS和IN不同,它们在所有情况下都不相同.具体来说,当涉及NULL时,它们将返回不同的结果.完全具体,当子查询返回一个null时,NOT IN将不匹配任何行.
| 归档时间: |
|
| 查看次数: |
4437 次 |
| 最近记录: |