MSSQL MERGE语法
Merge的用法Merge可以完成以下功能:1、 两个表之间数据的更新2、 进行进销存更新库存3、 进行表之间数据的复制语法说明:1、 在语句结束后一定要用分号,否则会提示错误。2、 Merge后为目标表,Using后为数据源表3、 如果有两个When matched,则必须使用and来限定第一个子句,一个子句必须制定一个update,另一个必须制定delete4、 When not matched by target,这个子句处理存在于数据源之中,但不存在目标之中的数据行。5、 When not matched等价于When not matched by target6、 When not mathed by source,这个子句处理,存在于目标中,但是不存在数据表之中的数据行一、两个表之间数据的更新create table test1 (col1 int,col2 varchar(100))create table test2 (col3 int,col4 varchar(100)) insert into test1values(1,'wang'),(2,'trieagle')insert into test2(col3)values(1),(2)merge test2using test1on test1.col1=test2.col3when matched then update set col4=col2; select * from test2结果:col3 col41 wang2 trieagle二、进行进销存更新库存Trade表为模拟进出库记录,正数表示入库,负数表示出库create table stock(id int,qty int)create table trade(id int ,qty int)goinsert into stockvalues (1,10), (2,20)insert into tradevalues(1,10),(1,-5),(1,20),(2,10),(2,-30),(3,5) merge stockusing (select id,qty=sum(qty) from trade group by id) Kon stock.id=k.idwhen matched and (stock.qty+k.qty)=0 then deletewhen matched then update set stock.qty=stock.qty+k.qtywhen not matched by target then insert values(k.id,k.qty); select * from stock结果:id qty1 353 5三、进行表之间数据的复制drop table test1drop table test2create table test1 (col1 int,col2 varchar(100))create table test2 (col3 int,col4 varchar(100)) insert into test1values(1,'wang'),(2,'trieagle') merge test2using test1 on test1.col1 =test2.col3when matched and col2!=col4 then update set col4=col2when not matched then insert values(col1,col2)when not matched by source then delete; select* from test2结果:col3 col41 wang2 trieagle 继续:删掉test1中的一行,然后增加一行Delete test1 where col1=1Insert into test1 values(3,'wyq')然后再执行merge test2using test1 on test1.col1 =test2.col3when matched and col2!=col4 then update set col4=col2when not matched then insert values(col1,col2)when not matched by source then delete; 结果:col3 col42 trieagle3 wyqMSSQL MERGE语法的更多相关文章
- MSSQL,MySQL 语法区别
1 mysql支持enum,和set类型,sql server不支持 2 mysql不支持nchar,nvarchar,ntext类型 3 mysql的递增语句是AUTO_INCREMENT,而mss ...
- MERGE语法详解
merge语法是根据源表对目标表进行匹配查询,匹配成功时更新,不成功时插入. 其基本语法规则是 merge into 目标表 a using 源表 b on(a.条件字段1=b.条件字段1 and a ...
- (转)MERGE语法详解
merge语法是根据源表对目标表进行匹配查询,匹配成功时更新,不成功时插入. 其基本语法规则是 merge into 目标表 a using 源表 b on(a.条件字段1=b.条件字段1 and a ...
- oracle的merge语法
merge into trade.ttradeseat ausing trade.bs_zrt_tradeseat bon (a.L_FUND_ID = b.l_Fund_Id and a.l_bas ...
- SQL Merge 语法 单表查询
--项目中需要用到Merg语法,于是去网上查了资料,发现竟然都是多表查询,问题是我只有一张表,于是我纳闷了,后来我灵机一动,就搞定了!--表名:t_login(登录表)--字段:f_userName( ...
- ORACLE中的MERGE语法使用记录
项目中使用到了Oracle的MERGE INTO语句,在这里简单记录下使用方法 使用场景如下: 存在对一张数据量很大的表,你需要对里面的大量数据进行更新,如果数据不存在,就进行插入的操作. 常规想到的 ...
- merge 语法解析
merge into 支持sqlserver 2008 和以上的版本 无论是INSERT还是UPDATE,从执行之间上看,MERGE INTO(MERGE)都要比直接INSERT/UPDATE的效率高 ...
- MySQL与MSSQL的一些语法差异(持续更新中)
分号不能少:分号不能少:分号不能少:重要的事情说3遍 Insert或者Update的数据包含反斜杠\的时候需要进行转义\\,例:insert into tablename(id,name) value ...
- MYSQL与MSSQL对比学习
最近在将公司的一个产品里面相关的MSSQL语句修改为可以在MYSQL上执行的语句 l 优点分析: MYSQL短小精悍,容易上手,操作简单,免费供用的.相对其它数据库有特色又实用的语法多一些.SQL怎 ...
随机推荐
- TIOBE 2015年7月编程语言排行榜:C++的复兴
TIOBE 2015年7月编程语言排行榜:C++的复兴 发表于2015-07-13 17:03| 16086次阅读| 来源CSDN| 128 条评论| 作者钱曙光 编程语言排行榜TIOBEC++ 摘要 ...
- web设计中那些因素可能影响网站后期优化
web设计中那些因素可能影响网站后期优化. 1.网站代码的简洁实用性.网站源文件html代码.js代码.css代码等应尽可能的压缩处理.能用jquery-min.js的最好不要用jquery.js:c ...
- Xcode6 storyboard new push segue 后的视图控制器没有navigation item bug.
手动切一下 老的push,再切回来,就会出有了,我想是一个bug. Xcode 6 Segue with UINavigationItem up vote0down votefavorite I' ...
- 【转】jenkins持续集成配置
搭建jenkins持续集成服务器 1.jenkins简介 Jenkins,前身为Hudson,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,包括: 持续的软件版本发布/测试项目. 监控 ...
- nodejs+express安装
1.安装nodejs http://www.nodejs.org/下载或直接安装nodejs. 安装默认会勾选加入环境变量. 打开cmd,输入node -v.测试是否成功. 2.安装express 命 ...
- 缓存和sd卡的路径(原)
在需要存储的时候,路径的问题是初学者比较迷惑的,下面是对于getCacheDir().getFilesDir().getExternalFilesDir().getExternalCacheDir() ...
- GWAS Simulation
comvert hmp to ped1, ped2, map fileSB1.ped, SB2.ped, SB.map 1, choose 20 markers for 30 times(WD: /s ...
- js switch 扩展
//demo var num=99 switch(n){ case 80<n: document.write("优秀");break; case 70<n: docum ...
- 关于Kendo的Grid 单元格样式
<!DOCTYPE html><html style="height: 100%;"><head><meta http-equiv=&qu ...
- Flask 的扩展
1. Flask-Script,为Flask程序提供了一个命令行解析器: (venv) $ pip install flask-script 2. Bootstrap(http://getbootst ...