2010-01-21 64 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