NERGER INTO 的新用法-----未测试,没环境
--10g新特性,单个操作
merge into acct a
using subs b on(a.msid=b.msid)
when not matched then--只有单个not matched的时候,只做插入,不做更新,只有单个matched的时候,只做更新操作
insert(a.msid,a.bill_month,a.areacode) values(b.msid,'200702',b.areacode);
--10g新特性,merge操作之后,只有匹配的update操作才可以,用delete where子句删除目标表中满足条件的行。
merge into acct a
using subs b on (a.msid=b.msid)
when MATCHED then
update set a.areacode=b.areacode
delete 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;
--10g新特性,满足条件的插入和更新
merge into acct a
using subs b on (a.msid=b.msid)
when MATCHED then
update set a.areacode=b.areacode
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;
本文介绍了Oracle 10g数据库中MERGE INTO语句的新特性及用法,包括如何仅在匹配时进行更新操作、仅在不匹配时进行插入操作、以及如何结合DELETE WHERE子句来删除满足特定条件的行。通过具体示例展示了如何根据源表数据的ms_type字段值来决定是否执行更新或插入操作。
1191

被折叠的 条评论
为什么被折叠?



