最近我偶然发现了在Sql Server和Oracle中使用not()的情况。尝试了不同的例子,将NOT条件和not()与不同的操作符(如LIKE、IN等)进行比较。就结果集和记录数而言,我没有看到任何区别,但希望向社区确认这两者是否相同或存在任何注意事项?
查询示例:
select count(*) from Emp where country not in ('ENGLAND UK', 'HAITI', 'IRELAND')
select count(*) from Emp where not(country in ('ENGLAND UK', 'HAITI', 'IRELAND'))
IN()
子句中使用文字参数列表时,SQL执行计划没有区别。如果涉及PK列,则为聚集索引查找,否则为聚集索引扫描。使用子查询和最佳键时,将进行两次扫描和左反半连接,在NOT
运算符放置的位置无论如何都没有区别。 - Cee McSharpface