永发信息网

SQL中 merge语句 没有where子句吗,Oricle都有

答案:1  悬赏:0  手机版
解决时间 2021-04-06 16:50
SQL中 merge语句 没有where子句吗,Oricle都有
最佳答案
Oracle MERGE 例子

Oracle 9i 开始支持 MERGE语句

Oracle的MERGE 相对于SQL Server 2008 的 MERGE。
功能上,缺少一个 WHEN NOT MATCHED BY SOURCE 的情况。

-- 源表
CREATE TABLE test_from (id INT, val VARCHAr(20));

-- 目标表
CREATE TABLE test_to (id INT, val VARCHAr(20));

-- 插入源表
INSERT INTO test_from VALUES (1, 'A');
INSERT INTO test_from VALUES (2, 'B');

-- 合并 源表到目标表

MERGE INTO test_to
USING test_from
ON ( test_to.id = test_from.id ) -- 条件是 id 相同
WHEN MATCHED THEN UPDATe SET test_to.val = test_from.val -- 匹配的时候,更新
WHEN NOT MATCHED THEN INSERT VALUES(test_from.id, test_from.val) -- 源表有,目标表没有,插入

-- 第一次检查 目标表数据.

SQL> SELECt * FROM test_to;
ID VAL
---------- --------------------
1 A
2 B

-- 更新源表
UPDATe test_from SET val = 'A2' WHERe id = 1;

-- 删除源表
DELETe FROM test_from WHERe id = 2;

-- 插入源表
INSERT INTO test_from VALUES (3, 'C');

-- 合并 源表到目标表
MERGE INTO test_to
USING test_from
ON ( test_to.id = test_from.id ) -- 条件是 id 相同
WHEN MATCHED THEN UPDATe SET test_to.val = test_from.val -- 匹配的时候,更新
WHEN NOT MATCHED THEN INSERT VALUES(test_from.id, test_from.val) -- 源表有,目标表没有,插入

-- 再次检查 目标表数据.

SQL> SELECt * FROM test_to;
ID VAL
---------- --------------------
1 A2
2 B
3 C
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
在直角边分别为 a ,b的直角三角形中内接一个
爱情的古风诗句,求关于爱情的古风诗
骁途1.6cvt时尚型 可以直接加导航么
请问这个翡翠玉观音市值多少?冰糯的,高53款
描写都市繁华夜景段落,唯美伤感的诗词
每个姓氏都有它专属的句子图片我姓瞿
气体涡轮流量计实际流量要大于其量程为什么
暗黑里边米拉伯佳之袍 穿上怎么卸不下拉
Win7 SP1 Ghost旗舰版x86(精简优化克隆封装67
头发烫那种烫最好打理呀??
现在白领做什么副业好又赚钱
外地人在上海买房,可以吗,有什么要求吗
下列各句,加点的熟语(包括成语)使用不恰当
排卵后老放屁,怎么回事
如果你有神奇的门,你会用它做什么?
推荐资讯
古文对应,大虾进
有关亭子的诗词、典故、简介
海外金矿风险勘查融资有什么途径。
端午节纪念屈原的现代诗歌朗诵会
如果你们分手了,很久没有联系,见了面也没有
恭喜生孩子祝福语大全,对刚领证的夫妻的祝福
单选题下列选项与浪漫主义美术无关的是A.是人
冬季盛行从亚欧大陆内部吹来的______特点是__
怎么算刷乳胶漆的底漆和面漆用的桶数
Heretheresultsofthestudentactivity surveya
华为哪一款手机最好用,华为手机哪一款最好
单选题2011年8月25日,首届“政务微博与社会
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?