2024年4月28日发(作者:)
sqlserver的merge into语法
SQL Server的MERGE语句是一种将INSERT、UPDATE
和DELETE操作组合到单个语句中的语法结构。它允许根据
源数据和目标数据的匹配条件,执行相应的操作。
下面是MERGE语句的基本语法:
sql复制代码:
MERGE INTO target_table USING source_table
ON (condition)
WHEN MATCHED THEN
UPDATE SET column1 = value1, column2 = value2, ...
WHEN NOT MATCHED THEN
INSERT (column1, column2, ...)
VALUES (value1, value2, ...);
• target_table:目标表,即要执行更新或删除操作的表。
• source_table:源表,即包含要插入或更新数据的表。
• ON (condition):指定源表和目标表之间的匹配条件。
如果满足该条件,则执行相应的更新或插入操作。
• WHEN MATCHED THEN:当满足匹配条件时执行的语
句块。
• UPDATE SET column1 = value1, column2 = value2, ...:
用于更新目标表的列的值。
• WHEN NOT MATCHED THEN:当不满足匹配条件时执
行的语句块。
• INSERT (column1, column2, ...) VALUES (value1,
value2, ...):用于插入新行到目标表中。
下面是一个示例,演示了如何使用MERGE语句:
sql复制代码:
MERGE INTO employees AS target
USING (SELECT employee_id, first_name, last_name
FROM employees WHERE department = 'Sales') AS source
ON (ee_id = ee_id)
WHEN MATCHED THEN
UPDATE SET = + 1000,
_name = 'Smith'
WHEN NOT MATCHED THEN
INSERT (employee_id, first_name, last_name) VALUES
(ee_id, _name, 'Smith');
上述示例中,我们首先指定了目标表为employees,源
表为包含部门为"Sales"的员工的子查询。然后,我们指定了
匹配条件为ee_id = ee_id。当满
足匹配条件时,我们执行更新操作,将目标表的工资增加
1000,并将姓氏更新为"Smith"。当不满足匹配条件时,我们
执行插入操作,将源表的员工ID、名字和姓氏插入到目标表
中。
发布评论