您的位置:首页 > 数据库 > Oracle

Oracle应用MERGE语句

2010-07-25 17:45 363 查看
Merge 是Oracle9i版本之后增加的语句,使用该语句可实现对表的更新或插入。
有stu1,stu2两张测试表。
现在将stu2中的数据有条件第插入到stu1中。
ON 子句指定连接条件(检查stu2中的每一行看是否与stu1中的行 匹配):如果匹配,
则使用UPDATE更新stu1中的行,如果不匹配,则使用INSERT插入到stu1中。
测试过程如下:
SQL> SELECT STUNO,STUNAME,GENDER FROM STU1;
STUN STUNAME GEND
---- ---------- ----
1100 changong 男
1104 张燕广 女

已选择2行。

SQL> SELECT STUNO,STUNAME,GENDER FROM STU2;
STUN STUNAME GEND
---- ---------- ---- -------- ---------- ---- ----
1100 changong 男
1101 bowmman 女
1104 张燕广 男

已选择3行。
SQL> MERGE INTO STU1 S1
USING (SELECT STUNO,STUNAME,GENDER FROM STU2)s2
ON (s1.STUNO=s2.STUNO)
WHEN MATCHED THEN UPDATE SET
s1.STUNAME=s2.STUNAME,s1.GENDER=s2.GENDER
WHEN NOT MATCHED THEN INSERT (STUNO,STUNAME,GENDER)
VALUES(s2.STUNO,s2.STUNAME,s2.GENDER);

3 行已合并。

SQL> commit;

提交完成。

SQL> SELECT STUNO,STUNAME,GENDER FROM STU1;
STUN STUNAME GEND
---- ---------- ----
1100 changong 男
1104 张燕广 男
1101 bowmman 女

已选择3行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: