ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 多表合并

多表合并

原创 Linux操作系统 作者:junecaoic 时间:2008-12-09 18:52:07 0 删除 编辑
 MERGE INTO  table_name_1
USING   table_name_2
ON (condition expression)
WHEN MATCHED THEN
      update_statement
WHEN NOT MATCHED THEN
      insert_statement
 
说明:
table_name_1 表示将要把数据合并进来的目标表名称。
table_name_2 表示在合并数据时另外一个数据来源表名称。
condition_expression表示在合并数据是否相同的判断条件。
update_statement 表示当合并条件匹配时执行的更新数据语句。
insert_statement 表示当合并条件不匹配时执行的插入数据语句。
 
(1)authors_old表结构
SQL> desc authors_old
Name           Type         Nullable Default Comments
-------------- ------------ -------- ------- --------
AUTHOR_ID      NUMBER                                
FIRST_NAME     VARCHAR2(10)                          
LAST_NAME      VARCHAR2(10)                          
BIRTHDATE      DATE                                  
GENDER         CHAR(1)                               
NATIONALITY_ID VARCHAR2(2)  Y                        
PHONE          VARCHAR2(12) Y
(2)authors_new的结构与authors_old表完全相同
 
MERGE INTO authors_old o
USING authors_new n
ON (o.author_id = n.author_id)
WHEN MATCHED THEN
UPDATE
   SET o.first_name     = n.first_name,
       o.last_name      = n.last_name,
       o.birthdate      = n.birthdate,
       o.gender         = n.gender,
       o.nationality_id = n.nationality_id,
       o.phone          = n.phone
WHEN NOT MATCHED THEN
  INSERT (o.author_id,o.first_name,o.last_name,o.birthdate,o.gender,o.nationality_id,o.phone)
  VALUES (n.author_id,n.first_name,n.last_name,n.birthdate,n.gender,n.nationality_id,n.phone);

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

上一篇: 没有了~
下一篇: 单表分解
请登录后发表评论 登录
全部评论

注册时间:2008-12-09

  • 博文量
    14
  • 访问量
    10868