SQL如何使用Merge将一个上传的表与另一个表对比并更新

简介: 本文介绍了如何使用SQL Merge语句对比并更新两个表的数据,结合示例代码展示插入与更新操作,并说明如何通过Join查询实现复杂场景下的数据同步。

如果我上传了一个表,那么我要如何将这个表和另一个表对比并直接更新呢?

SQL Merge

SQL Shack Merge
答案是使用SQL Merge函数。

SQL 核对并更新

我们先用参考网站的举例:

USE SqlShackMergeDemo
    GO

    MERGE TargetProducts AS Target
    USING SourceProducts    AS Source
    ON Source.ProductID = Target.ProductID

    -- For Inserts
    WHEN NOT MATCHED BY Target THEN
        INSERT (ProductID,ProductName, Price) 
        VALUES (Source.ProductID,Source.ProductName, Source.Price)

    -- For Updates
    WHEN MATCHED THEN UPDATE SET
        Target.ProductName  = Source.ProductName,
        Target.Price        = Source.Price;

例如我们需要更新PeopleEmailList这个表,这表里有100个人,但是我上传的临时表里只有15个人(需要修改)。
且我们Source的表是需要先和别的表合并展示才可以的,那么我们需要先Join查询并加上括号:


MERGE PeopleEmailList

USING(
Select bi.PeopleID, bi.Surname, bi.ForeName,bi.PreferredForeName,bi.PreferredSurname
,import.EmployeeID
,import.EmailAddress
From BasicInformation bi
Inner Join ztemp_20220901 as import on bi.PeopleID = import.EmployeeID
) AS Base on Base.PeopleID = PeopleEmailList.PeopleID

When MATCHED THEN
Update
Set PeopleEmailList.EmailID = Base.EmailAddress;
相关文章
简单练习Microsoft SQL Server MERGE同步两个表
【10月更文挑战第13天】本文介绍了在Microsoft SQL Server中使用`MERGE`语句同步两个表的步骤。首先创建源表`SourceTable`和目标表`TargetTable`并分别插入数据,然后通过`MERGE`语句根据ID匹配行,实现更新、插入和删除操作,最后验证同步结果。此方法可根据需求调整以适应不同场景。
526 1
|
SQL 数据处理 数据库
深入解析SQL中的MERGE语句及其重要性
【8月更文挑战第31天】
511 0
|
SQL 数据库管理
【SQL开发实战技巧】系列(九):一个update误把其他列数据更新成空了?Merge改写update!给你五种删除重复数据的写法!
本篇文章讲解的主要内容是:***你有没有经历过一个update把其他列数据清空了、使用merge更新合并记录、删除违反参照完整性的记录、给你五种删除重复数据的写法*** 【SQL开发实战技巧】这一系列博主当作复习旧知识来进行写作,毕竟SQL开发在数据分析场景非常重要且基础,面试也会经常问SQL开发和调优经验,相信当我写完这一系列文章,也能再有所收获,未来面对SQL面试也能游刃有余~。
【SQL开发实战技巧】系列(九):一个update误把其他列数据更新成空了?Merge改写update!给你五种删除重复数据的写法!
|
SQL 数据挖掘 关系型数据库
5个例子介绍Pandas的merge并对比SQL中join
5个例子介绍Pandas的merge并对比SQL中join
416 0
5个例子介绍Pandas的merge并对比SQL中join
|
SQL 数据库
|
存储 SQL 专有云
Oracle存储过程迁移ODPS-01(专有云):支持DML(delete/update/merge)SQL
关系型数据库支持的DML(delete/update/merge)SQL ,在maxcompute(ODPS)该如何写? 总有人问,现写了一个例子,应该可以说明了。 有问题,欢迎大家指正。
2915 1
|
SQL
SQL Server - 使用 Merge 语句实现表数据之间的对比同步
原文:SQL Server - 使用 Merge 语句实现表数据之间的对比同步 表数据之间的同步有很多种实现方式,比如删除然后重新 INSERT,或者写一些其它的分支条件判断再加以 INSERT 或者 UPDATE 等。
1624 0