zoukankan      html  css  js  c++  java
  • Oracle—merge into语法

    oracle的merge into语法,在这种情况下:

    基于某些字段,存在就更新,不存在就插入:
    不需要先去判断一下记录是否存在,直接使用merge into

    merge into 语法:

    MERGE INTO table_name alias1
    USING (table|view|sub_query) alias2
    ON (join condition)
    WHEN MATCHED THEN
        UPDATE SET col1 = col_val1,
               col2 = col_val2
    WHEN NOT MATCHED THEN
        INSERT (column_list) VALUES (column_values);
    

    具体就是:

    MERGE INTO T T1
    USING (SELECT '1001' AS a,2 AS b FROM dual) T2
    ON ( T1.a=T2.a)
    WHEN MATCHED THEN
       UPDATE SET T1.b = T2.b
    WHEN NOT MATCHED THEN
       INSERT (a,b) VALUES(T2.a,T2.b);
    

    简单总结一下:

      目标表 T1,是需要更新或者插入的表,T2 是源数据表,使用T2表的数据去更新T1表,条件是,T1的字段“a” 等于 T2的字段“a”,

      如果匹配,执行“UPDATE SET T1.b = T2.b”

      如果不匹配,执行“INSERT (a,b) VALUES(T2.a,T2.b)”

    注意固定写法:
      1、useing 后面是括号,内容是源数据表 
      2、Update 后面不用加表名
      3、Inser 后面不用加 “into 表名”

    注:在一个同时存在Insert和Update语法的Merge语句中,总共Insert/Update的记录数,就是Using语句中T2的记录数

    转自:oracle merge into语法

  • 相关阅读:
    本地数据存储
    网络统计公式
    网络统计图形
    上海证券综合指数统计分析及挖掘(二)
    上海证券综合指数统计分析及挖掘(一)
    概论
    寿险精算学目录
    JavaScript脚本代码练习
    JavaScript脚本语言基础(一)
    层叠样式表(CSS)
  • 原文地址:https://www.cnblogs.com/shujk/p/14029516.html
Copyright © 2011-2022 走看看