首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IN关键字与OR关键字

IN关键字与OR关键字
EN

Stack Overflow用户
提问于 2011-08-09 00:29:03
回答 4查看 92关注 0票数 4

如果我在WHERE子句中使用以下任意一项,是否会有很大差异:

代码语言:javascript
复制
WHERE [Process Code] = 1 AND ([Material ID] = 'PLT' OR [Material ID] = 'BMI')

--or

WHERE [Process Code] =  1 AND [Material ID] IN ('PLT', 'BMI')

会不会有一天我会用其中一种来代替另一种?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-08-09 00:31:07

在您提供的示例中,它们做的是完全相同的事情(它们将产生相同的执行计划)。但是,使用后一种语法(除了更简洁之外),您可以这样做:

代码语言:javascript
复制
WHERE [Process Code] = 1 AND [Material ID] IN (SELECT ID FROM Material WHERE Type = @type)
票数 4
EN

Stack Overflow用户

发布于 2011-08-09 00:31:12

我想不出什么时候我会使用第一种选择。第二种选择更清晰,更有表现力。如果需要将其转换为子选择,这将更容易做到。

票数 5
EN

Stack Overflow用户

发布于 2011-08-09 00:35:26

IN只是一堆OR's的语法糖。IN通常更可取,因为它更易于阅读:它不会重复变量名,并且您不必考虑ANDOR中哪个具有更高的运算符优先级。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6985278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档