sql MERGE

Easter79
• 阅读 617
--WHEN  NOT MATCHED  BY Source 和WHEN  NOT MATCHED  BY TARGET 是固定格式
--用USING中查到的数据S 对T表来操作
 MERGE INTO [Admin] T  
                USING Admin2 AS S  
                ON ( T.LoginId = S.LoId ) 
                WHEN  NOT MATCHED  BY TARGET THEN  --目标表(T)中不存在  源表(S)中存在  
                INSERT (LoginId ,LoginPwd )
                VALUES (s.loid ,s.lopwd);
go
 MERGE INTO [Admin] T  
                USING Admin2 AS S
                ON ( T.LoginId = S.LoId ) 
                WHEN  NOT MATCHED  THEN  --目标表(T)中不存在  源表(S)中存在   
                INSERT (LoginId ,LoginPwd )
                VALUES (s.loid ,s.lopwd);
go
 MERGE INTO [Admin] T   
                USING Admin2 AS S
                ON ( T.LoginId = S.LoId ) 
                WHEN  NOT MATCHED  BY Source THEN  --目标表(T)中存在  源表(S)中不存在
                delete;
go

 WHEN MATCHED 是当上面条件成立 执行下面操作

WHEN MATCHED 后面可以跟 and

WHEN  NOT MATCHED  BY Source 和 WHEN  NOT MATCHED  BY TARGET 是固定格式

WHEN  NOT MATCHED  BY TARGET 和  WHEN  NOT MATCHED 相同

用Using中查到的数据S 对 T操作

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Easter79 Easter79
3年前
sql注入
反引号是个比较特别的字符,下面记录下怎么利用0x00SQL注入反引号可利用在分隔符及注释作用,不过使用范围只于表名、数据库名、字段名、起别名这些场景,下面具体说下1)表名payload:select\from\users\whereuser\_id1limit0,1;!(https://o
kenx kenx
3年前
个人博客开发之blog-api项目统一结果集api封装
前言由于返回jsonapi格式接口,所以我们需要通过javabean封装一个统一数据返回格式,便于和前端约定交互,状态码枚举ResultCodejavapackagecn.soboys.core.ret;importlombok.Getter;/@authorkenx@version1.0@date2021/6/1715:35
Stella981 Stella981
3年前
Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''
Stella981 Stella981
3年前
Merge Into 语法
mergeinto根据查询数据对已存在的表中数据执行删除、修改、新增操作,在实际应用中非常实用,可以减少insert、update、delete的书写。基本语法:merge into table_name tn using (select column_name,... from table_name ) tmp on tn.条件tm
Wesley13 Wesley13
3年前
Oracle一张表中实现对一个字段不同值和总值的统计(多个count)
需求:统计WAIT\_ORDER表中的工单总数、未处理工单总数、已完成工单总数、未完成工单总数。表结构:为了举例子方便,WAIT\_ORDER表只有两个字段,分别是ID、STATUS,其中STATUS为工单的状态。1表示未处理,2表示已完成,3表示未完成总数。 SQL:  1.SELECT   2
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
9个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
Easter79
Easter79
Lv1
今生可爱与温柔,每一样都不能少。
文章
2.8k
粉丝
5
获赞
1.2k