zoukankan      html  css  js  c++  java
  • Oracle 使用MERGE INTO 语句更新数据

    转http://www.cnblogs.com/jiangguang/archive/2012/12/24/2830581.html

    /*Merge into 详细介绍
    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 users

    using doctor

    on (users.user_id = doctor.doctorid)

    when matched then

      update set users.user_name = doctor.doctorname      --update 和 insert 语句均可以简写,省略 表名等

    when not matched then

      insert

      values

        (doctor.doctorid,

         doctor.doctorid,

         '8736F1C243E3B14941A59FF736E1B5A8',

         doctor.doctorname,

         sysdate,

         'T',

         ' ',

         doctor.deptid,

         'b319dac7-2c5c-496a-bc36-7f3e1cc066b8');

    限定条件位置:

    merge into MDC_DiabetesRecord  a
    using EHR_HealthRecord b
    on (a.empiid = b.empiid  and  a.phrid='3301850040200000' ) --限制条件 a.phrid='3301850040200000'  可以 置于 condition 处
    when matched then
      update set a.status = '9' ;  
     
       merge into MDC_DiabetesRecord  a
    using EHR_HealthRecord b
    on (a.empiid = b.empiid  )
    when matched then
      update set a.status = '9'  where  a.phrid='3301850040200000'  ;  --可以 置于 update 处

  • 相关阅读:
    select和epoll的区别
    Epoll导致的selector空轮询
    2.集合框架中的泛型有什么优点?
    java的语法基础(二)
    17-文本属性和字体属性
    15-浮动
    16-margin的用法
    14-块级元素和行内元素
    12-简单认识下margin
    day15 什么是递归/递归与回溯
  • 原文地址:https://www.cnblogs.com/chenyj/p/6133808.html
Copyright © 2011-2022 走看看