merge into语法:
merge into [target-table] a using [source-table sql] b on([conditional expression] and [...]...)
when matched then
[update sql]
when not matched then
[insert sql]
作用:判断B表和A表是否满足on中条件,如果满足则用b表去更新a表,如果不满足,则将b表数据插入a表但是有很多可选项,如下:
1.正常模式
2.只update或者只insert
3.带条件的update或带条件的insert
4.全插入insert实现
5.带delete的update(觉得可以用3来实现)
举例:
MERGE INTO T_R_FR_ETFCNSS_BOOK E
USING (SELECT N_REC_MONEY, C_SSTD_WAY FROM T_R_FR_ETF_MAIN) G
ON (E.C_SSTD_WAY = G.C_SSTD_WAY)
WHEN MATCHED THEN
UPDATE SET E.N_REC_MONEY = G.N_REC_MONEY
WHEN NOT MATCHED THEN
INSERT INTO ...
解析:就是将这张表T_R_FR_ETF_MAIN的N_REC_MONEY这个字段更新到T_R_FR_ETFCNSS_BOOK这张表中,
条件是ON后面满足E.C_SSTD_WAY = G.C_SSTD_WAY时,如果不满足则插入。
update跟insert可以同时存在,也可以只存在一个。
原文:https://www.cnblogs.com/liliang906/p/10839735.html