如何在Where子句中使用NOT?

时间:2011-11-01 18:39:33

标签: sql sql-server-2005 sql-server-2008

如果我以下列方式编写NOT查询之间有什么区别。

SELECT iBatchID,COUNT(*) FROM #temp WHERE NOT iBatchID  IN (1) GROUP BY iBatchID

SELECT iBatchID,COUNT(*) FROM #temp WHERE iBatchID NOT IN (1) GROUP BY iBatchID

如果我使用WHERE NOT iBatchID IN (1)WHERE iBatchID NOT IN (1)之间有什么区别?

1 个答案:

答案 0 :(得分:3)

没有区别。它们将具有相同的查询结果。

我相信执行计划应该是相同的,但找到它的最佳方法是捕获每个查询的实际执行计划。

我个人总是选择... WHERE SomeCol NOT IN (...),因为它比... NOT WHERE SomeCol IN (...)更清晰。但这是所有个人偏好以及您认为更具可读性和可维护性的内容。