SQL WHERE NOT...IN 与 WHERE ... NOT IN
Posted
技术标签:
【中文标题】SQL WHERE NOT...IN 与 WHERE ... NOT IN【英文标题】:SQL WHERE NOT...IN vs WHERE ... NOT IN 【发布时间】:2016-07-03 19:19:30 【问题描述】:以下两个语句、语法、性能、风格或其他方面是否有任何区别或最佳实践?
SELECT TitleOfCourtesy, FirstName, LastName
FROM Employees
WHERE NOT TitleOfCourtesy IN ('Ms.','Mrs.');
SELECT TitleOfCourtesy, FirstName, LastName
FROM Employees
WHERE TitleOfCourtesy NOT IN ('Ms.','Mrs.');
【问题讨论】:
我很确定两者的底层查询执行是相同的。这只是一个偏好问题。就个人而言,WHERE 列 NOT IN 听起来更合适。 【参考方案1】:使用Where... NOT IN
是我遇到最多的一种,就行业而言,它是首选,以使不习惯看到Where NOT ... IN
的其他人更容易阅读该声明。
【讨论】:
【参考方案2】:使用“IN”,因为它很可能使 DBMS 使用相应列上的索引。
“NOT IN”理论上也可以转换为索引使用,但以一种更复杂的方式,DBMS 可能不会“花费开销时间”使用。
【讨论】:
以上是关于SQL WHERE NOT...IN 与 WHERE ... NOT IN的主要内容,如果未能解决你的问题,请参考以下文章