About Merge statement

Merge 语句就是依据条件update或者insert数据到目的表中,语句结构如下:

 
 

具体看看下面这个例子......


sql>select empno,ename,sal,deptno
2 from emp;

EMPNO ENAME SAL DEPTNO
---------- ---------- ---------- ----------
7369 SMITH 800 20
7499 ALLEN 1600 30
7521 WARD 1250 30
7566 JONES 2975 20
7654 MARTIN 1250 30
7698 BLAKE 2850 30
7788 SCOTT 3000 20
7844 TURNER 1500 30
7876 ADAMS 1100 20
7900 JAMES 950 30
7902 FORD 3000 20

11 rows selected.

sql>create table test as
2 select empno,ename,sal,deptno from emp where deptno = '20';

Table created.

sql>select * from test;

EMPNO ENAME SAL DEPTNO
---------- ---------- ---------- ----------
7369 SMITH 800 20
7566 JONES 2975 20
7788 SCOTT 3000 20
7876 ADAMS 1100 20
7902 FORD 3000 20
sql>merge into test
2 using (select * from emp) e
3 on test.empno = e.empno
4 when matched then update set sal = sal + 200
5 when not matched then insert (test.empno,test.ename,test.sal,test.deptno)
6 values(e.empno,e.ename,e.sal,e.deptno);
on test.empno = e.empno
*
ERROR at line 3:
ORA-00969: missing ON keyword


sql>ed
Wrote file afiedt.buf

1 merge into test
2 using (select * from emp) e
3 on (test.empno = e.empno)
4 when matched then update set sal = sal + 200
5 when not matched then insert (test.empno,test.ename,test.sal,test.deptno)
6* values(e.empno,e.ename,e.sal,e.deptno)
sql>/

11 rows merged.

sql>select * from test;

EMPNO ENAME SAL DEPTNO
---------- ---------- ---------- ----------
7369 SMITH 1000 20
7566 JONES 3175 20
7788 SCOTT 3200 20
7876 ADAMS 1300 20
7902 FORD 3200 20
7844 TURNER 1500 30
7698 BLAKE 2850 30
7499 ALLEN 1600 30
7521 WARD 1250 30
7654 MARTIN 1250 30
7900 JAMES 950 30

11 rows selected.

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

转载于:http://blog.itpub.net/45259/viewspace-134862/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值