oracle merge into与sqlserver merge into 比较
来源:互联网 发布:上海水利公司 知乎 编辑:程序博客网 时间:2024/05/16 16:21
merge into:
在两个表之间,根据与源表联接的结果,对目标表执行插入、更新或删除操作。
Oracle在9i引入了merge into命令,SQL Server 2008也引入merge into。
不多说了,实例对比一下吧!
oracle merge into:
/*drop table a;drop table b;*/create table a (aid integer null,aname varchar2(10) null);create table b (bid integer null,bname varchar2(10) null);insert into a values(1,'aname1');insert into a values(3,'aname3');insert into a values(4,'aname4');insert into b values(1,'bname1');insert into b values(2,'bname2');insert into b values(3,'bname3');merge into a using b on (a.aid=b.bid)--必须加括号when matched then update set a.aname=b.bname where b.bid>1 --可加条件when not matched then insert values(b.bid,b.bname) select * from a;select * from b;查看A表结果:
1. 条件id>1 不更新
2. 符合条件,更新目标表
3. 注意:目标表中,此行 aid<>bid,保留了下来
4. 目标表中不存在id=2的,插入到目标表
sqlserver2008 merge into:
/*drop table a;drop table b;*/create table a (aid int null,aname varchar(10) null);create table b (bid int null,bname varchar(10) null);insert into a values(1,'aname1');insert into a values(3,'aname3');insert into a values(4,'aname4');insert into b values(1,'bname1');insert into b values(2,'bname2');insert into b values(3,'bname3');merge into ausing b on a.aid=b.bid --可不用括号when matched then update set a.aname=b.bnamewhen not matched then insert values(b.bid,b.bname)when not matched by source then --在a表中无操作的记录可执行删除 delete; --必须以分号结束select * from a;select * from b;查看A表结果:
看,匹配的完全更新到A表!
oracle merge into 和 sqlserver 2008 merge into 的区别:
1. oracle在连接条件 on(a.aid=b.bid) 必须加括号,sqlserver 可以不用,也可以用。
2. oracle中目标表不参与的记录行只能保留,sqlserver 还可以执行删除。
3. oracle 在匹配条件中可以进一步添加更新的筛选条件,sqlserver不能增加条件约束。
4. oracle在语句结尾可加或不加分号,sqlserver 必定要在语句结束后添加分号“;”。
- oracle merge into与sqlserver merge into 比较
- 【sqlserver】merge into test
- Oracle select --merge into:
- oracle merge into 测试
- oracle merge into
- oracle merge into 实例
- Oracle 之 MERGE INTO
- Oracle:merge into
- Oracle数据库merge into
- oracle merge into
- oracle merge into
- oracle merge into用法
- merge into(oracle)
- ORACLE MERGE INTO
- oracle merge into 用法
- oracle merge into
- Oracle merge into 命令
- oracle的merge into
- 用自己电脑做服务器发布网站
- 第六周上机任务 1
- android Kernel Start
- 2013-4-5.2
- Oracle Proxy Authentication(代理身份认证)
- oracle merge into与sqlserver merge into 比较
- Bitbucket使用方法
- 关于c语言中EOF用法的理解
- 改错const
- mysql更改引擎(InnoDB,MyISAM)
- JDBC--Statement,PreparedStatement,CallableStatement的区别
- 第六周C++上机报告(项目1--改错)
- 第六周项目1 改错
- 改错