oracle 10 merge,ORACLE 10 g的 merge into 用法

21569a2bfceae6baa7baed89e058d5db.png

创建表subs  和 acct

create table subs(

msid number(9),

ms_type char(1),

areacode number(3)

);

create table acct(

msid number(9),

bill_month number(6),

areacode number(3),

fee number(8,2) default 0.00

);插入数据

insert into subs values(905310001,0,531);

insert into subs values(905320001,1,532);

insert into subs values(905330001,2,533);

commit

语法

-- 语法

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;测试

--- matched:更新 not matched:插入 两者可以同步执行也可以只要一个条件

merge into acct a

using subs b

on (a.msid = b.msid)

when matched then

update set a.areacode = 22

when not matched then

insert (msid, bill_month, areacode) values (b.msid, '200702', b.areacode);

commit增强条件查询操作

merge into acct a

using subs b

on (a.msid = b.msid)

when matched then

update set a.areacode = 22 where b.ms_type = 0

when not matched then

insert (msid, bill_month, areacode) values (b.msid, '200702', b.areacode) where b.ms_type = 0;

commit增强删除操作

merge into acct a

using subs b

on (a.msid = b.msid)

when matched then

update set a.areacode = 22

delete where (b.ms_type != 0);

commit

原文:http://blog.csdn.net/xiaokui_wingfly/article/details/45168965

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值