MERGE INTO

MERGE INTO 是 SQL 中的一种语句,主要用于合并(或称为“合并插入”)数据。这种语句通常用于将数据从一个源表合并到一个目标表中,并在目标表中进行插入、更新或删除操作。

MERGE INTO 的基本语法如下:

sqlCopy Code
MERGE INTO target_table AS target
USING source_table AS source
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 定义了当目标表中存在匹配记录时要执行的操作,通常是更新操作。
  • WHEN NOT MATCHED THEN 定义了当目标表中没有匹配记录时要执行的操作,通常是插入操作。

示例:

假设你有一个员工表 employees 和一个新的员工数据表 new_employees,你想将 new_employees 表中的数据合并到 employees 表中。如果 employees 表中已有记录,则更新其信息;如果没有记录,则插入新记录。

sqlCopy Code
MERGE INTO employees AS target
USING new_employees AS source
ON (target.employee_id = source.employee_id)
WHEN MATCHED THEN
    UPDATE SET target.name = source.name,
               target.position = source.position,
               target.salary = source.salary
WHEN NOT MATCHED THEN
    INSERT (employee_id, name, position, salary)
    VALUES (source.employee_id, source.name, source.position, source.salary);

在这个例子中:

  • 如果 employees 表中存在与 new_employees 表中的 employee_id 相匹配的记录,employees 表中的记录将被更新。
  • 如果 employees 表中没有匹配的记录,则会插入 new_employees 表中的新记录。

MERGE INTO 语句在不同的数据库系统中可能有些许不同,因此请参考具体数据库系统的文档了解详细的语法和使用方法。

posted @ 2024-09-13 11:03  55qH5LiK  阅读(144)  评论(0)    收藏  举报