SQL如何使用Merge将一个上传的表与另一个表对比并更新
2023-06-13 09:15:29 时间
如果我上传了一个表,那么我要如何将这个表和另一个表对比并直接更新呢?
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;
相关文章
- SQL开发知识:Oracle 12c sql 查询转换之临时表转换详解
- MySQL中的导入SQL文件 Command怎么用?(mysql导入sql文件命令)
- Oracle中使用SQL删除字段(oracle删除字段sql)
- 使用SQL连接Oracle数据库(sql连接oracle)
- Java 从FTP下载.上传文件详解编程语言
- python远程创建文件夹上传文件详解编程语言
- 极速上手:使用SQL访问Oracle数据库(sql访问oracle数据库)
- 使用Oracle导出表结构的SQL语句(oracle导出表结构sql)
- 语句MySQL 创建表:使用SQL语句实现.(mysql创建表sql)
- 标题:使用Oracle 查询 SQL 语句(oracle查sql)
- 使用 Oracle SQL 实现多表拼接(oracle拼接sql)
- 使用MSSQL导入.SQL文件(mssql.sql文件)
- Oracle SQL实践精通(oracle的sql练习)
- Oracle数据库如何导入SQL表(oracle导入sql表)
- 深入浅出:使用Redis替代SQL查询(redis实现sql查询)
- 快速上手:如何打开MySQL SQL命令行界面?(mysql打开sql)
- 如何使用SQL快速导入MSSQL数据库(sql如何导入mssql)
- 数据合法性使用SQL语句判断MSSQL数据合法性(sql判断mssql)
- Oracle SQL跟踪工具介绍及使用技巧(oracle跟踪sql工具)
- 使用SQL语句查询Redis数据库的操作方法(sql语句查询redis)
- 中的数据使用SQL从Redis中检索数据(使用sql获取redis)
- 的sql语句精益求精Oracle打造优雅的SQL语句(oracle书写好看)
- Oracle中使用SQL实现取整(oracle中sql取整)
- 格使用Oracle SQL去除字符串中的空格(oracle sql去空)
- Sql学习第一天——SQL练习题(建表/sql语句)