oracle的merge into语法,在这种情况下:

基于某些字段,存在就更新,不存在就插入

不需要先去判断一下记录是否存在,直接使用merge into

oerge into 语法:

MERGE INTO table_name alias1
USING (table|view|sub_query) alias2
ON (join condition)
WHEN MATCHED THEN
UPDATE table_name
SET col1 = col_val1,
col2 = col_val2
WHEN NOT MATCHED THEN
INSERT (column_list) VALUES (column_values);

具体就是:

MERGE INTO T T1
USING (SELECT '1001' AS a,2 AS b FROM dual) T2
ON ( T1.a=T2.a)
WHEN MATCHED THEN
UPDATE SET T1.b = T2.b
WHEN NOT MATCHED THEN
INSERT (a,b) VALUES(T2.a,T2.b);

简单总结一下:

  目标表 T1,是需要更新或者插入的表,T2 是源数据表,使用T2表的数据去更新T1表,条件是,T1的字段“a” 等于 T2的字段“a”,

  如果匹配,执行“UPDATE SET T1.b = T2.b”

  如果不匹配,执行“INSERT (a,b) VALUES(T2.a,T2.b)”

注意固定写法:

  1、useing 后面是括号,内容是源数据表 

  2、Update 后面不用加表名

  3、Inser 后面不用加 “into 表名”

在一个同时存在Insert和Update语法的Merge语句中,总共Insert/Update的记录数,就是Using语句中T2的记录数

oracle merge into语法的更多相关文章

  1. Oracle—merge into语法

    oracle的merge into语法,在这种情况下: 基于某些字段,存在就更新,不存在就插入: 不需要先去判断一下记录是否存在,直接使用merge into merge into 语法: MERGE ...

  2. oracle merge into 语法

    MERGE INTO upperLowerLimitData t1 USING (select name,enname,starttime,value ...   from dual) t2 ON ( ...

  3. Oracle中merge into语法

    merge into 语句就是insert和update的一个封装,简单来说就是: 有则更新,无则插入 下面说怎么使用 MERGE INTO table_Name  T1(匿名) using (另外一 ...

  4. Oracle Merge into 详细介绍

    Oracle Merge into 详细介绍 /*Merge into 详细介绍MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句.通过MERGE语句,根据一张表或子查 ...

  5. oracle merge用法

    动机: 想在Oracle中用一条SQL语句直接进行Insert/Update的操作. 说明: 在进行SQL语句编写时,我们经常会遇到大量的同时进行Insert/Update的语句 ,也就是说当存在记录 ...

  6. Oracle merge合并更新函数

    本博客介绍一下Oracle merge合并函数,业务场景:新增数据的时候要先查询数据库是否已经有改数据,有数据就更新数据,没数据才新增数据,这是很常见的业务场景,如果是用Oracle数据库的话,其实直 ...

  7. Oracle Merge Into Insert/Update

    出自:http://blog.csdn.net/yuzhic/article/details/1896878 动机: 想在Oracle中用一条SQL语句直接进行Insert/Update的操作. 说明 ...

  8. [转载]Oracle Merge的使用

    FROM: http://zhangqchang.blog.163.com/blog/static/464989732009219114653226/ 摘至网上的几个例子 一.************ ...

  9. [Oracle] Merge语句

    Merge的语法例如以下: MERGE [hint] INTO [schema .] table [t_alias] USING [schema .] { table | view | subquer ...

随机推荐

  1. UVA1588-Kickdown

    2018-10-30-18:27:03 原题链接 题目描述: 给出两个长度分别为n1,n2且每列高度只为1或2的长条,需要将它们放入一个高度为3的容器,求出能够容纳他们的最短容器长度. 本题思路: 模 ...

  2. 微信小程序接入百度统计

    一. 百度统计添加应用,获取appkey和微信小程序统计sdk: 1. 百度统计首页,点击“我的全部应用”右侧的添加按钮: 2. “应用类型”选择小程序统计,选择微信小程序,填写应用名称信息,选择内容 ...

  3. CodeForces - 873B Balanced Substring(思维)

    inputstandard input outputstandard output You are given a string s consisting only of characters 0 a ...

  4. Visual Studio 2015 自动生成 的大文件xxx.vc.db的删除问题

    用vs2015创建Visual C++项目,编写生成后,每次都会生成一个project_name.VC.db文件,而且会随着你工程修改运行变的越来越大. project_name.VC.db是sqli ...

  5. [leetcode]445. Add Two Numbers II 两数相加II

    You are given two non-empty linked lists representing two non-negative integers. The most significan ...

  6. day 26 初识进程,验证客户端合法性

    验证客户端合法性: # 1.需要认证 # 程序和用户打交道的时候才会用到用户认证 # 对所有的客户端进行统一的认证 # 我现在要做的事情 # 写一个server端 # 写一个client端 特殊的 符 ...

  7. golang 常用的正则查找与替换

    package main; import ( "regexp" "fmt" "strings" ) func main() { //1.过正 ...

  8. easyrules

    http://www.easyrules.org/tutorials/hello-world-tutorial.html

  9. Django 前端Wbe框架

    Web框架本质及第一个Django实例   Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web ...

  10. 异常处理 day 30

    异常处理 一 错误和异常 二 异常处理 2.1 什么是异常处理? 2.2 为何要进行异常处理? 2.3 如何进行异常处理? 三 什么时候用异常处理 异常和错误 part1:程序中难免出现错误,而错误分 ...