Oralce9 的新方法: Merge into Using
2016-04-28 13:39
537 查看
一、语义
MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句。通过MERGE语句,根据一张表或子查询的连接条件对另外一张表进行查询,连接条件匹配上的进行UPDATE,无法匹配的执行INSERT。这个语法仅需要一次全表扫描就完成了全部工作,执行效率要高于INSERT+UPDATE。
二、语法结构
三、应用例子
MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句。通过MERGE语句,根据一张表或子查询的连接条件对另外一张表进行查询,连接条件匹配上的进行UPDATE,无法匹配的执行INSERT。这个语法仅需要一次全表扫描就完成了全部工作,执行效率要高于INSERT+UPDATE。
二、语法结构
MERGE [INTO [schema .] table [t_alias] USING [schema .] { table | view | subquery } [t_alias] ON ( condition ) WHEN MATCHED THEN merge_update_clause WHEN NOT MATCHED THEN merge_insert_clause;
三、应用例子
--例子一: MERGE INTO TEMP_CD_CNTR_QUERY A USING CONTAINER B ON (A.CNTR_NUM=B.EQMT_NUM and B.State='Active') WHEN MATCHED THEN UPDATE SET A.CNTR_NUM_CHECK=CASE WHEN B.CHECK_DIGIT IS NULL OR B.CHECK_DIGIT='' THEN A.CNTR_NUM ELSE A.CNTR_NUM||B.CHECK_DIGIT END , A.CNTR_TYPE=B.oocl_Cde; --例子二: MERGE INTO TEMP_CD_CNTR_QUERY A USING (SELECT DISTINCT t.TRCKG_GRP_REF_CDE,t.CURRENT_CNTR_NUM,t.CONSLD_PACKG_REF_CDE FROM CGO_PACKAGE t) B ON (A.TRCKG_GRP_REF_CDE=B.TRCKG_GRP_REF_CDE and A.cntr_num = B.CURRENT_CNTR_NUM AND B.CONSLD_PACKG_REF_CDE IS NOT NULL) WHEN MATCHED THEN UPDATE SET A.IS_PATIAL= B.CONSLD_PACKG_REF_CDE;
相关文章推荐
- bootstrap3学习1:响应式布局layout
- 数据结构之位运算篇
- 深入Mysql字符集设置[精华结合]
- Node.js学习笔记
- 文件夹的拷贝
- 串口DCB结构详解
- (转)耶鲁大学教授:研究生做科研的11条军规
- EDB数据同步与备份
- mysql提示错误#42000You have an error in your SQL syntax; check the manual that corresponds
- chome 调试 js禁用缓存
- mysql慢查询设置
- 用css改变鼠标选中文字的样式
- PHP中的ORM
- 常见条码的解释
- apache config httpd.conf file防止目录列表被浏览、敏感目录或文件限制IP访问
- map/set iterator not incrementable set/map使用erase时注意事项!
- 2016年国内开源镜像站点汇总
- UILabel属性
- 王高利:Kvm虚拟化(3)__nat方式上网
- Android 属性动画(Property Animation) 完全解析 (上)