ITPub博客

merge into基本用法

原创 Oracle 作者:llnnmc 时间:2018-10-12 10:05:02 0 删除 编辑

由于merge into平时很少用,但这次用到它来给记录做插入更新,于是简单记下最基本的用法。这里的例子就是给一个表中符合条件的数据做个值计数的更新,如果找到符合ID条件的记录,那么就将其值字段加1,否则就插入这条新的记录,并初始化值。

创建测试表并插入数据:
create table test1(id number, val number);
insert into test1 values(101, 1);
insert into test1 values(102, 1);
commit;
select * from test1;

        ID        VAL
---------- ----------
       101          1
       102          1

做merge into操作,新的一条数据被插入:
merge into test1 t1
using (select count(*) cnt from test1 where id = 103) t2 on (cnt <> 0)
when matched then
  update set val = val + 1 where id = 103
when not matched then
  insert values(103, 1);
commit;
select * from test1;

        ID        VAL
---------- ----------
       101          1
       102          1
       103          1

再执行一个merge into后,数据被更新:

        ID        VAL
---------- ----------
       101          1
       102          1
       103          2


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28974745/viewspace-2216140/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2016-12-29

  • 博文量
    83
  • 访问量
    51222