• Oralce9 的新方法: Merge into Using


    一、语义

      MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句。通过MERGE语句,根据一张表或子查询的连接条件对另外一张表进行查询,连接条件匹配上的进行UPDATE,无法匹配的执行INSERT。这个语法仅需要一次全表扫描就完成了全部工作,执行效率要高于INSERT+UPDATE。 

    二、语法结构

    MERGE [INTO [schema .] table [t_alias] 
    USING [schema .] { table | view | subquery } [t_alias] 
    ON ( condition ) 
    WHEN MATCHED THEN merge_update_clause 
    WHEN NOT MATCHED THEN merge_insert_clause;

    三、应用例子

    --例子一:
     MERGE INTO TEMP_CD_CNTR_QUERY A USING CONTAINER B
             ON (A.CNTR_NUM=B.EQMT_NUM and B.State='Active')
             WHEN MATCHED THEN
             UPDATE SET A.CNTR_NUM_CHECK=CASE WHEN B.CHECK_DIGIT IS NULL OR B.CHECK_DIGIT=''
                            THEN   A.CNTR_NUM
                            ELSE   A.CNTR_NUM||B.CHECK_DIGIT
                             END ,
                            A.CNTR_TYPE=B.oocl_Cde;
    --例子二:
    MERGE INTO TEMP_CD_CNTR_QUERY A USING (SELECT DISTINCT t.TRCKG_GRP_REF_CDE,t.CURRENT_CNTR_NUM,t.CONSLD_PACKG_REF_CDE FROM CGO_PACKAGE t) B ON (A.TRCKG_GRP_REF_CDE
    =B.TRCKG_GRP_REF_CDE and A.cntr_num = B.CURRENT_CNTR_NUM AND B.CONSLD_PACKG_REF_CDE IS NOT NULL) WHEN MATCHED THEN UPDATE SET A.IS_PATIAL= B.CONSLD_PACKG_REF_CDE;
  • 相关阅读:
    Mysql 数据库高级
    Mysql 数据库
    并发编程
    网络编程
    1113
    1112
    P相遇游戏
    中位数
    PETS
    打暴力程序的正确做法
  • 原文地址:https://www.cnblogs.com/renxiaoren/p/5442352.html
Copyright © 2020-2023  润新知