2010-01-21 105 views
18

哪個更快?SQL Server:選擇vs還是?

SELECT UserName 
FROM dbo.UserTable 
WHERE UserID in (1,3,4) 

SELECT UserName 
FROM dbo.UserTable 
WHERE UserID = 1 
     OR UserID = 3 
     OR UserID = 4 
+0

http://stackoverflow.com/questions/3074713/in-vs-or-in-the-sql-where-clause – rdo 2014-04-18 07:54:26

回答

23

由於查詢這些都會以相同的速度運行,因爲它們在邏輯上是等價的SQL Server的優化。

儘管我喜歡簡潔和易讀的IN語法。

+1

而不是/或有什麼方法可以查詢?那會更快? – Worgon 2013-06-11 06:33:29

+1

@Worgon如果值的數量很大,您可以將不同的值放入索引臨時表並加入。 – 2014-09-13 19:18:21

7

其實它是一樣的。

如果顯示預計執行計劃,您將看到它正在執行相同的操作。

-1

這與通過Linq生成SQL相關。有一些情況下,sql創建的形式是:field ='xxx'OR field ='yyy'。

+0

你能澄清一下嗎?我不知道你在說什麼。 – tbodt 2014-09-13 22:18:32