T-SQL MERGE语句-…当匹配和…或. .-是否需要括号(圆括号)



在t-SQL MERGE语句的以下小节中,是否需要括号(圆括号)?

  WHEN MATCHED  
           AND (  Target.CustomerName <> Source.CustomerName 
               OR Target.Planet <> Source.Planet
               )
  THEN
  UPDATE SET
        Target.CustomerName = Source.CustomerName
      , Target.Planet = Source.Planet

我问这个问题是因为我使用的是t-SQL格式化工具(ApexSQL),它识别出这些括号是不必要的,因此删除它们,因此:

  WHEN MATCHED  
           AND Target.CustomerName <> Source.CustomerName 
           OR  Target.Planet <> Source.Planet
  THEN
  UPDATE SET
        Target.CustomerName = Source.CustomerName
      , Target.Planet = Source.Planet 

然而,这与我对AND, OR逻辑的基本理解不符…这是个特例吗?

提前感谢!

是可选的。使用WHEN MATCHED

的罪过
WHEN MATCHED [ AND <clause_search_condition> ]

clause_search_condition单独求值

最新更新