oracle merge用法
时间: 2023-11-25 15:08:04 浏览: 148
Oracle的Merge语句是一种用于合并数据的SQL语句,它可以根据指定的条件将源表中的数据合并到目标表中。下面是Merge语句的基本语法:
```sql
MERGE INTO target_table
USING source_table
ON (join condition)
WHEN MATCHED THEN
UPDATE SET target_column = source_column
WHEN NOT MATCHED THEN
INSERT (target_column1, target_column2, ...)
VALUES (source_column1, source_column2, ...)
```
其中,`target_table`是要合并数据的目标表,`source_table`是要合并数据的源表,`join condition`是连接两个表的条件。如果连接条件匹配,则执行`WHEN MATCHED`分支中的更新操作,否则执行`WHEN NOT MATCHED`分支中的插入操作。
例如,假设我们有两个表`employee`和`employee_copy`,它们的结构如下:
```sql
CREATE TABLE employee (
id INT PRIMARY KEY,
name VARCHAR2(50),
salary NUMBER
);
CREATE TABLE employee_copy (
id INT PRIMARY KEY,
name VARCHAR2(50),
salary NUMBER
);
```
我们可以使用Merge语句将`employee_copy`表中的数据合并到`employee`表中,如下所示:
```sql
MERGE INTO employee e
USING employee_copy ec
ON (e.id = ec.id)
WHEN MATCHED THEN
UPDATE SET e.name = ec.name, e.salary = ec.salary
WHEN NOT MATCHED THEN
INSERT (id, name, salary)
VALUES (ec.id, ec.name, ec.salary);
```
在上面的例子中,如果`employee_copy`表中的一行数据匹配到`employee`表中的一行数据,则更新`employee`表中的相应列;否则将`employee_copy`表中的一行数据插入到`employee`表中。
阅读全文