SQL - 使用 MERGE
作者:互联网
摘要:SQL - 使用 MERGE
MERGE 语法是 SQL Server 2008 的新语法,可根据与来源数据表联结的结果,在目标数据表上执行插入、更新或删除作业。以下就来以范例的方式来实践...
Code:
--建立新数据表名为 大仓库
Create Table 大仓库
(
品名 nvarchar(50),
库存量 integer
);
--新增大仓库数据表数据
Insert into 大仓库
Values('中文书', 10),('英文书', 5),('法文书', 1);
--建立新数据表名为 进退货仓库
Create Table 进退货仓库
(
品名 nvarchar(50),
进退货量 integer
);
--新增进退货仓库数据表数据
Insert into 进退货仓库
Values('中文书', 5),('英文书', -5),('日文书', 6);
--查询 大仓库 与 进退货仓库 两数据表的数据
Select * From dbo.大仓库
Select * From dbo.进退货仓库
--将两张表 MERGE
--当两张表有数据 MERGE 时,且 库存量 加上 进退货量 等于零时,则删除数据
--当两张表有数据 MERGE 时,将 库存量 加上 进退货量 更新到 库存量
--当两张表没有数据 MERGE 时,将 进退货仓库 的数据新增到 大仓库 中
MERGE INTO 大仓库
USING 进退货仓库
ON 大仓库.品名 = 进退货仓库.品名
WHEN MATCHED AND (大仓库.库存量 + 进退货仓库.进退货量 = 0) THEN
DELETE
WHEN MATCHED THEN
UPDATE SET 大仓库.库存量 = 大仓库.库存量 + 进退货仓库.进退货量
WHEN NOT MATCHED THEN
INSERT VALUES(进退货仓库.品名, 进退货仓库.进退货量);
--查询 MERGE 后的结果
Select * From dbo.大仓库
Select * From dbo.进退货仓库
参考:
SQL Server 2008 T-SQL 实战学堂 (作者:杨志强老师)
MERGE (Transact-SQL)
SQL 2008 T-SQL MERGE Operator
SQL MERGE语句组合表
使用SQL MERGE语句组合表
标签:退货,数据表,仓库,SQL,库存量,MERGE,使用 来源: https://www.cnblogs.com/chinatrump/p/11514370.html