在SQL Server中合并多个匹配子句

时间:2018-10-21 08:33:34

标签: sql-server

我有两个表:

表1

Age     Height     Breed     Name      Owner     Locality
-------------------------------------------------------------
NULL    NULL       NULL      Tom       John      Camac Street
NULL    NULL       NULL      Jos       Lisa      HighLine
NULL    NULL       NULL      Kui       Hive      Wembley
NULL    NULL       NULL      Yor       Dave      Polis

表2

Age     Height    Name      Owner     
----------------------------------
2       1.6       Tom       John      
3       1.9       Jos       Lisa   
1       1.3       Yor       Dave
1       1.1       Tom       Roy  

我正在尝试以这种方式使用合并:

MERGE INTO table1  T
USING (SELECT * from table2) S ON T.Name = S.Name AND T.Owner = S.Owner

WHEN MATCHED
    UPDATE 
        SET Age = S.Age, 
            Height = S.Height;

但是我相信我不能在ON子句中使用and子句。

请让我知道如何合并这两个表。

1 个答案:

答案 0 :(得分:3)

您可以在ord(char)子句中使用多个联接条件。

您的语法应为:

ON

但是我强烈建议您阅读亚伦·伯特兰(Aaron Bertrand)的文章Use Caution with SQL Server's MERGE Statement