计算机对逻辑算符的运算次序,逻辑运算符的优先顺序

当一个语句中使用了多个逻辑运算符时,计算顺序依次为:NOT、AND 和 OR。算术运算符和位运算符优先于逻辑运算符处理。

在以下示例中,颜色条件适用于 Product Model 21 而不是 Product Model 20,因为 AND 优先于 OR。

USE AdventureWorks;

GO

SELECT ProductID, ProductModelID

FROM AdventureWorks.Production.Product

WHERE ProductModelID = 20 OR ProductModelID = 21

AND Color = 'Red'

可以通过添加括号强制先计算 OR 来改变查询的含义。以下查询只查找模型 20 和 21 中红色的产品。

SELECT ProductID, ProductModelID

FROM AdventureWorks.Production.Product

WHERE (ProductModelID = 20 OR ProductModelID = 21)

AND Color = 'Red'

因为运算符存在优先级,所以使用括号(即使不要求)可以提高查询的可读性,并减少出现细微错误的可能性。使用括号不会造成重大的性能损失。下面的示例比原始示例更可读,虽然它们在语义上是相同的。

SELECT ProductID, ProductModelID

FROM AdventureWorks.Production.Product

WHERE ProductModelID = 20 OR (ProductModelID = 21

AND Color = 'Red')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值