前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SQL如何使用Merge将一个上传的表与另一个表对比并更新

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

作者头像
繁华是客
发布2023-03-03 20:00:02
2.4K0
发布2023-03-03 20:00:02
举报

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

SQL Merge

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

SQL 核对并更新

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

代码语言:javascript
复制
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查询并加上括号:

代码语言:javascript
复制

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;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-09-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SQL Merge
  • SQL 核对并更新
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档