oracle中merge into用法


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可以同时存在,也可以只存在一个。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM