Sql server SQL Server ANDs和ORs优先级

Sql server SQL Server ANDs和ORs优先级,sql-server,operator-precedence,Sql Server,Operator Precedence,我正在调试一些代码,遇到了这个问题。有人能帮我按照SQL Server的顺序在这个语句周围加上括号吗。仅仅是我,还是这种糟糕的编码 WHERE T1.C1 = @VAR1 AND T1.C2 = @VAR2 AND T1.C3 NOT IN(@VAR3) OR T2.C1 = @VAR2 OR T3.C1 = @VAR2 按原样,它将被解析为 WHERE (T1.C1 = @VAR1 AND T1.C2 = @VAR2 AND T1.C3 NOT IN(@VAR3)) OR (T2.C1

我正在调试一些代码,遇到了这个问题。有人能帮我按照SQL Server的顺序在这个语句周围加上括号吗。仅仅是我,还是这种糟糕的编码

WHERE 
T1.C1 = @VAR1 AND T1.C2 = @VAR2 AND T1.C3 NOT IN(@VAR3)
OR T2.C1 = @VAR2 OR T3.C1 = @VAR2

按原样,它将被解析为

WHERE 
(T1.C1 = @VAR1 AND T1.C2 = @VAR2 AND T1.C3 NOT IN(@VAR3))
OR
(T2.C1 = @VAR2)
OR
(T3.C1 = @VAR2)

我们帮不了你,因为我们不知道你的意思。您可以使用
(括号)
将要考虑的子句括在一起。所以,如果你的意思是
(a和b)和(c或d或e)
,那么写下它,如果你的意思是
(a和b和c)或(d和e)
,那么写下它。PS
具有更高的优先级。因此,如果您编写
a和b或c
,那么您将得到
(a和b)或(c)
。如果你的意思是
(a)和(b或c)
,那么你需要这样写。让我们知道你想先测试哪些语句/条件。我问编译器将如何解析它。我假设它每次都会按原样解析它。我希望添加paren以提高可读性*根据解析器在没有paren的情况下如何执行它“。这正是我想要的。谢谢!