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表中含有张字的数据

  • 相关阅读:
    c# 中HttpClient访问Https网站
    c# ASP.NET Core2.2利用中间件支持跨域请求
    vs2017 .net core 项目调试浏览器网页闪退Bug
    Docker 共有 13 个管理命令和 41 个通用命令,以下是常用 Docker 命令列表
    在C#中GUID生成的四种格式
    Asp.net Image控件显示Bitmap生成图像
    visual studio code常用插件
    初中历史画卷
    google chrome 浏览器插件
    如何幽默
  • 原文地址:https://www.cnblogs.com/zijinyouyou/p/5190673.html
Copyright © 2011-2022 走看看