你好我正在尝试用这样的where条件构建一个查询
WHERE(dbo.Dosje.gjendja = 2)AND(dbo.Bashko.id IS NULL或dbo.Dosje.uniqueCode<> CONVERT(varchar(20),dbo.Dosje.qyteti +'_'+ dbo .Bashko.kodiDytesor))
这样的条件就像这个A和(B或C)一样,它通常可以转化为 (A和B)或(A和C)
但奇怪的是,当我尝试保存或执行这样的
时,sqlserver会转换我的where子句WHERE(dbo.Dosje.gjendja = 2)AND(dbo.Bashko.id IS NULL)或 (dbo.Dosje.gjendja = 2)AND(dbo.Dosje.uniqueCode<> CONVERT(varchar(20),dbo.Dosje.qyteti +'_'+ dbo.Bashko.kodiDytesor))
这是不一样的逻辑。这是(A和B或A和C)。这是不一样的逻辑,为什么sql server会改变我的查询?
答案 0 :(得分:0)
这是相同的逻辑。 AND运算符的优先级高于OR运算符,因此始终首先对其进行求值。 A和B或A和C 与(A和B)或(A和C)相同。