1句SQL实现A插入到B然后删除A

Oracle9i引入了MERGE命令,
你能够在一个SQL语句中对一个表同时执行inserts和updates操作. MERGE命令从一个或多个数据源中选择行来updating或inserting到一个或多个表.

Oracle 10g中MERGE有如下一些改进:
1、UPDATE或INSERT子句是可选的
2、UPDATE和INSERT子句可以加WHERE子句
3、ON条件中使用常量过滤谓词来insert所有的行到目标表中,不需要连接源表和目标表
4、UPDATE子句后面可以跟DELETE子句来去除一些不需要的行

 

1句SQL实现A插入到B然后删除A

MERGE INTO b
  USING a
  ON (b.idb = a.id)
  WHEN MATCHED THEN
    UPDATE SET b.ageb = 11 
    DELETE WHERE(B.AGEB=11);
  WHEN NOT MATCHED THEN
    INSERT (idb, ageb) VALUES (a.id, a.age);


posted @ 2013-03-06 11:27  Jason-Holt  阅读(122)  评论(0编辑  收藏  举报