Oracle merge语句对主表加过滤条件
时间: 2023-07-02 07:10:21 浏览: 177
oracle merge 用法详解
5星 · 资源好评率100%
Oracle MERGE语句的基本语法如下:
```
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`是源表,`condition`是连接两个表的条件,`WHEN MATCHED THEN`表示当目标表和源表中的记录匹配时执行的操作,`WHEN NOT MATCHED THEN`表示当目标表和源表中的记录不匹配时执行的操作。
如果要对主表加过滤条件,可以在`USING`语句中添加`WHERE`子句,例如:
```
MERGE INTO main_table m
USING source_table s
ON (m.id = s.id)
WHERE m.status = 'ACTIVE'
WHEN MATCHED THEN
UPDATE SET m.column1 = s.value1, m.column2 = s.value2
WHEN NOT MATCHED THEN
INSERT (column1, column2) VALUES (s.value1, s.value2);
```
在上面的例子中,`WHERE`子句对主表`main_table`加了一个过滤条件`m.status = 'ACTIVE'`,只有符合该条件的记录才会参与到MERGE操作中。
阅读全文