T-SQL MERGE语句 - ......匹配时......或者...... - 是否需要括号(括号)?

时间:2014-08-11 08:29:49

标签: sql sql-server tsql 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逻辑的基本理解......这是一个特例吗?

提前谢谢!

1 个答案:

答案 0 :(得分:0)

是的,它是可选的。使用WHEN MATCHED

的语法
WHEN MATCHED [ AND <clause_search_condition> ]

单独评估clause_search_condition