zoukankan      html  css  js  c++  java
  • oracle中merge方法

      先看SQL语句:merge into employee e using emps em on (e.emp_id=em.emp_id)

    when matched then  update set e.emp_name=em.emp_name

    when not matched then insert values (em.emp_id,em.emp_name)

      1.将emps表中的数据更新到employee表中,以主键匹配,如果主键匹配就执行update语句,如果不匹配则执行insert语句,需要注意的是,如果emps表中的数据均匹配employee表的数据,则不能写insert语句,也可以指处理匹配的情况,即没有when not matched 语句

      2.using后边也可以用视图或者子查询,如上边的例子也可以写为:

    merge into employee e using (select * from  emps) em on (e.emp_id=em.emp_id) 

    when matched then  update set e.emp_name=em.emp_name

    when not matched then insert values (em.emp_id,em.emp_name)

      3.update和insert子句可以加where子句:

    merge into employee e using (select * from  emps) em on (e.emp_id=em.emp_id)

    when matched then  update set e.emp_name=em.emp_name where em.emp_name like ‘%%

    when not matched then insert values (em.emp_id,em.emp_name) where em.emp_name like ‘%%

    即只添加emps表中含有张的数据

      4.update子句后可以跟delete子句删除一些不需要的数据,delete只能和update子句配合使用

    merge into employee e using (select * from  emps) em on (e.emp_id=em.emp_id)

    when matched then  

    update set e.emp_name=em.emp_name delete where e.emp_id=em.emp_id where em.emp_name like ‘%%

    when not matched then insert values (em.emp_id,em.emp_name)

    即不更新emps表中含有张字的数据

  • 相关阅读:
    Python 集合 深浅copy
    python基础(基础数据类型)
    python基础一
    Asp.net获取网站绝对路径的几种方法
    Ajax请求被缓存的几种处理方式
    说说字符编码
    linux学习记录
    mysql基础
    【Android开发入门】关于ListView中按钮监听器设置的解决方案
    线程同步小结
  • 原文地址:https://www.cnblogs.com/zijinyouyou/p/5190673.html
Copyright © 2011-2022 走看看