Sql server 与SQL Server中的多个匹配子句合并
我有两张桌子: 表1:Sql server 与SQL Server中的多个匹配子句合并,sql-server,Sql Server,我有两张桌子: 表1: Age Height Breed Name Owner Locality ------------------------------------------------------------- NULL NULL NULL Tom John Camac Street NULL NULL NULL Jos Lisa HighLin
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
Age Height Name Owner
----------------------------------
2 1.6 Tom John
3 1.9 Jos Lisa
1 1.3 Yor Dave
1 1.1 Tom Roy
表2:
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
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;
但我相信我不能用and子句和ON子句
请告诉我如何合并这两个表。您可以在
ON
子句中使用多个连接条件
您的语法应该是:
MERGE INTO table1 AS T
USING table2 AS S
ON T.Name = S.Name
AND T.Owner = S.Owner
WHEN MATCHED THEN
UPDATE
SET T.Age = S.Age,
T.Height = S.Height;
但我强烈建议你读亚伦·伯特兰的文章