ORACLE 10 g的 merge into 用法
参考Oracle 的SQL Reference 下面我在一下环境中做一个测试看看
创建表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
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。