假设我有这样的陈述:
SELECT * FROM MyTable WHERE a = 1 or b = 2 and c = 3
这是否意味着:(a = 1)OR(b = 2 AND c = 3)或它是否意味着(a = 1或b = 2)和c = 3?我可以改变它的含义,即在AND之前执行OR或者这是不可能的吗?
答案 0 :(得分:10)
来自Technet:
在语句中使用多个逻辑运算符时,AND 首先评估运营商。您可以更改评估顺序 使用括号。
是的,这意味着(a = 1) OR (b = 2 AND c = 3)
。
您可以像上面那样写下括号来强制执行您想要的行为:(a = 1 OR b = 2) AND c = 3