ITPub博客

首页 > 数据库 > Oracle > MERGE

MERGE

原创 Oracle 作者:13175 时间:2012-09-06 10:51:21 0 删除 编辑

SQL> select *from orders_master;

ORDER_ID ORDER_TOTAL
---------- -----------
1 1000
2 2000
3 3000
4

SQL> select *from monthly_orders;

ORDER_ID ORDER_TOTAL
---------- -----------
2 2500
3

SQL> MERGE INTO orders_master o //目标
2 USING monthly_orders m //源
3 ON (o.order_id = m.order_id) //对比的值
4 WHEN MATCHED THEN //如匹配
5 UPDATE SET o.order_total = m.order_total // 将源的值 更新 到目标
6 DELETE WHERE (m.order_total IS NULL) //当 源的order_total IS NULL 则删除 目标中的这样一行。
7 WHEN NOT MATCHED THEN //如不匹配
8 INSERT VALUES (m.order_id, m.order_total); //则 将源的值 插入 到目标。

2 行已合并。

如果如下;
monthly_orders的2,3
SQL> select *from orders_master;

ORDER_ID ORDER_TOTAL
---------- -----------
1 1000
2 2500
4

SQL> select *from monthly_orders;

ORDER_ID ORDER_TOTAL
---------- -----------
2 2500
3

[@more@]

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

下一篇: nvl
请登录后发表评论 登录
全部评论

注册时间:2012-02-22

  • 博文量
    52
  • 访问量
    224921