ITPub博客

首页 > 数据库 > Oracle > merge使用(2)

merge使用(2)

原创 Oracle 作者:sky850623 时间:2014-11-10 22:17:57 0 删除 编辑
1.创建orders_master表
  1. SQL> create table orders_master
  2.   2 (order_id number(2),
  3.   3 order_total number(4));

  4. 表已创建。

  5. SQL> insert into orders_master values(1,1000);

  6. 已创建 1 行。

  7. SQL> insert into orders_master values(2,2000);

  8. 已创建 1 行。

  9. SQL> insert into orders_master values(3,3000);

  10. 已创建 1 行。

  11. SQL> insert into orders_master(order_id) values(4);

  12. 已创建 1 行。

  13. SQL> commit;

  14. 提交完成。

  15. SQL> select * from orders_master;

  16.   ORDER_ID ORDER_TOTAL
  17. ---------- -----------
  18.          1 1000
  19.          2 2000
  20.          3 3000
  21.          4
2.创建monthly_orders表

  1. SQL> create table monthly_orders
  2.   2 (order_id number(2),
  3.   3 order_total number(4));

  4. 表已创建。

  5. SQL> insert into monthly_orders values(2,2500);

  6. 已创建 1 行。

  7. SQL> insert into monthly_orders(order_id) values(3);

  8. 已创建 1 行。

  9. SQL> commit;

  10. 提交完成。

  11. SQL> select * from monthly_orders;

  12.   ORDER_ID ORDER_TOTAL
  13. ---------- -----------
  14.          2 2500
  15.          3
3.
  1. 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)
  7. when not matched then
  8. insert values(m.order_id,m.order_total)
4.

  1. SQL> select *from orders_master;

  2.   ORDER_ID ORDER_TOTAL
  3. ---------- -----------
  4.          1 1000
  5.          2 2500
  6.          4
  7. SQL> select *from monthly_orders;

  8.   ORDER_ID ORDER_TOTAL
  9. ---------- -----------
  10.          2 2500
  11.          3

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

请登录后发表评论 登录
全部评论

注册时间:2013-05-30

  • 博文量
    154
  • 访问量
    515382