根据与源表相联接的结果,对目标表进行插入、更新、删除等操作。 例如,对目标表,如果源表存在的数据则更新,没有的则插入,就可以使用MEREG进行同步。

基本语法

MERGE INTO target_table
USING source_table
ON condition
WHEN MATCHED THEN
XXX
WHEN NOT MATCHED THEN
XXX

这里的Source table 不限于单独的表格,也可以是子查询的内容

示例

INSERT tbl_A (col, col2)
SELECT col, col2
FROM tbl_B
WHERE NOT EXISTS (SELECT col FROM tbl_A A2 WHERE A2.col = tbl_B.col);

上面的SQL是为了向 tbl_A 中插入 tbl_B 含有的,但是 tbl_A 不包含的col

改为MERGE可以写为

MERGE INTO tbl_A  t
USING tbl_B v
ON t.col = v.col
WHEN MATCHED THEN
UPDATE SET y.c2 = v.c2
WHEN NOT MATCHED THEN
INSERT (col, col2) VALUES (v.c1, v.c2);

(这里为了展示更多的选项,加多了一句UPDATE)

当一个表需要依托于另一个表进行更新操作的时候,使用MERGE可以快捷的实现

SQL 高级语法 MERGE INTO的更多相关文章

  1. 【HICP Gauss】数据库 数据库高级语法(数据类型函数)-3

    SQL高级语法:整型:   integer 2(-31) ~2(31)-1 4字节 intger unsigned 2(0)~2(32)-1 4字节 bigint 2(-63)~2(63)-1 8字节 ...

  2. 13Microsoft SQL Server SQL 高级事务,锁,游标,分区

    Microsoft SQL Server SQL高级事务,锁,游标,分区 通过采用事务和锁机制,解决了数据库系统的并发性问题. 9.1数据库事务 (1)BEGIN TRANSACTION语句定义事务的 ...

  3. oracle sql 高级编程 历史笔记整理

    20130909 周一 oracle sql 开发指南 第7章 高级查询 1.层次化查询select level,ttt.*,sys_connect_by_path(ttt.col1,',') fro ...

  4. Sql常用语法以及名词解释

    Sql常用语法以及名词解释 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) D ...

  5. SQL基础语法笔记教程整理

    PS:本文适用SQL Server2008语法. 一.关系型数据库和SQL 实际上准确的讲,SQL是一门语言,而不是一个数据库. 什么是SQL呢?简而言之,SQL就是维护和使用关系型数据库中的的数据的 ...

  6. sql 常用语法汇总

    Sql常用语法 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控 ...

  7. SQL 高级查询(层次化查询,递归)

    SQL 高级查询 前面我们写了一下 SQL 的极简入门,今天来说点高级查询.没看到的朋友可以点击下面链接查看. 1 小时 SQL 极速入门(一) 1 小时 SQL 极速入门(二) 1 小时 SQL 极 ...

  8. SQL高级查询技巧

    SQL高级查询技巧   1.UNION,EXCEPT,INTERSECT运算符 A,UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重 ...

  9. Oracle SQL高级编程——分析函数(窗口函数)全面讲解

    Oracle SQL高级编程--分析函数(窗口函数)全面讲解 注:本文来源于:<Oracle SQL高级编程--分析函数(窗口函数)全面讲解> 概述 分析函数是以一定的方法在一个与当前行相 ...

  10. SQL基础语法提纲

    一.SQL需知5点 1.SQL是Structured Query Language的缩写,是用来访问关系型数据库的,非过程化的,高级编程语言. 2.SQL具有语法高度综合统一,高度的非过程化,对集合进 ...

随机推荐

  1. Nginx 可视化配置神器NginxConfig

    Nginx 是前后端开发工程师必须掌握的神器.该神器有很多使用场景:比如反向代理.负载均衡.动静分离.跨域等等. 把 Nginx 下载下来打开 conf 文件夹的 nginx.conf 文件,Ngin ...

  2. leetcode简单(数组,字符串,链表):[168, 171, 190, 205, 228, 448, 461, 876, 836, 844]

    目录 168. Excel表列名称 171. Excel 表列序号 190. 颠倒二进制位 205. 同构字符串 228. 汇总区间 448. 找到所有数组中消失的数字 461. 汉明距离 876. ...

  3. Error: Dynamic require of "path" is not supported

    failed to load config from D:\BaiduSyncdisk\vue3\sys-manager\vite.config.jserror when starting dev s ...

  4. [oeasy]python019_ 如何在github仓库中进入目录_找到程序代码_找到代码

    继续运行 回忆上次内容 上上次 真写了万行代码 这 万行代码 都是写在明面上的 这次 使用git命令 下载了 github上面的仓库       添加图片注释,不超过 140 字(可选)   下载仓库 ...

  5. PointNet笔记

    可能遇到的问题 在windows上运行pointnet的代码时,可能会遇到一些问题: 1.比如提示OSError: no file with expected extension, 这是因为可视化的s ...

  6. 使用JavaScript编写vue指令v-model,v-model原理实现

    首先先要知道的是v-model的作用是实现数据的双向绑定,即: 数据在视图层的双向响应. 实现思路主要分为两步: 第一步:数据层到视图层的响应 将数据响应到视图层的方式,在vue2使用的是Object ...

  7. WPF控件库

    Welcome to CookPopularControl 介绍 CookPopularControl是支持.NetFramework4.6.1与.Net5.0的WPF控件库,其中参考了一些资料,目前 ...

  8. activity向上/向下一个页面发送数据

    向下一个活动发送数据 一般使用bundle(捆) 使用方法 创建并准备发送数据 //这里是上一个页面 Intent intent = new Intent(this,class); //新建意图 Bu ...

  9. WorPress基础之谷歌GSC与GA统计代码安装

    本篇文章讲介绍什么是GSC和GA以及如何安装. 什么是GSC GSC,全称为Google Search Console,由谷歌官方提供的网站管理工具,可帮助监控和维护网站在Google 搜索结果中的展 ...

  10. Jmeter函数助手30-groovy

    groovy函数用于脚本执行. 表达式评估:填入Apache Groovy脚本(不是文件名).本身包含逗号的参数值应根据需要进行转义'\,' 存储结果的变量名(可选) 1.引用变量进行截取字符处理 $ ...