2016-07-03 5 views
2

Есть ли какие-либо различия или лучшие практики между двумя следующими утверждениями, синтаксисом, производительностью, стилем или иным образом?SQL WHERE NOT ... IN vs WHERE ... NOT IN

SELECT TitleOfCourtesy, FirstName, LastName 
FROM Employees 
WHERE NOT TitleOfCourtesy IN ('Ms.','Mrs.'); 



SELECT TitleOfCourtesy, FirstName, LastName 
FROM Employees 
WHERE TitleOfCourtesy NOT IN ('Ms.','Mrs.'); 
+1

Я уверен, что выполнение базового запроса одинаково для обоих. Это просто вопрос предпочтения. Лично, WHERE column NOT IN звучит более уместно. – SArnab

ответ

3

Использование Where... NOT IN - это тот, с которым я столкнулся больше всего и с точки зрения отрасли, это предпочтительнее, чтобы сделать утверждение более читаемым для других, которые не привыкли видеть Where NOT ... IN.

1

Используйте «IN», поскольку он, скорее всего, сделает базу данных, используя индекс в соответствующем столбце.

«NOT IN» теоретически может также быть переведено в использование индекса, но более сложным способом, которым СУБД не может «тратить накладные расходы» с использованием.