码迷,mamicode.com
首页 > 数据库 > 详细

oracle中merge方法

时间:2016-02-15 16:29:15      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:

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

oracle中merge方法

标签:

原文地址:http://www.cnblogs.com/zijinyouyou/p/5190673.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!