oracle 中 merge INTO 语法的使用
语法格式:
merge into [target-table] A
using [source-table sql] B
on ([conditional expression] and [...]...)
when matched then -- 当on中的条件匹配时
[update sql] -- 执行操作 更新或删除等
when not matched then -- 当on中的条件不匹配时
[insert sql] -- 执行操作 新增等
语法解释:
判断B表和A表是否满足on中的条件,
如果满足,则用B表去更新A表或其他操作;
如果不满足,则讲B表数据插入A表。
语法实例:
merge INTO t_yunpacs_diag_config t using ( SELECT '22222222' hosId FROM dual ) t2 ON ( t.hospital_id = t2.hosId )
WHEN matched THEN
UPDATE
SET t.MODIFIER = '3038',
t.MODIFY_TIME = '2020-12-09 15:44:45.193'
WHEN NOT matched THEN
INSERT ( t.HOSPITAL_ID, t.SIGN_FLAG, t.DUB_SIGN_FLAG, t.TASKTYPE, t.CREATOR, t.CREATE_TIME )
VALUES
( t2.hosId, '0', '0', '1', '3038', '2020-12-09 15:44:45.193' )