oracle merge into

merge语法:

MERGE INTO [target-table]

  USING [source-table sql]

  ON([conditional expression] and [...]...)

  WHEN MATCHED THEN

    [UPDATE sql]

  WHEN NOT MATCHED THEN

    [INSERT sql]

可以参考SQL中Merge的用法,只不过sql server的merge语法多了个when not matched by source反向操作源表,该语法oracle似乎不支持。

个人理解对于源表中的每条记录,若在目标表中存在与之匹配的记录,则当条源记录与该记录进入matched子句,可根据源记录对目标表该记录执行update子句,若不存在,则当条源记录进入not matched子句,可根据源记录对目标表执行insert子句。

参考:

https://www.cnblogs.com/kongxc/p/9237941.html

https://www.cnblogs.com/jiangcm/p/10790588.html

相关推荐