首页 > 数据库 >SQL Server中Merge子句、CTE、CONCAT、FORMAT函数用法

SQL Server中Merge子句、CTE、CONCAT、FORMAT函数用法

时间:2022-09-07 22:46:41浏览次数:72  
标签:NULL INT col2 col3 keycol col1 CTE SQL Server

Merge子句

把源数据合并到目标表

点击查看代码
CREATE TABLE a
 (keycol INT PRIMARY KEY,
  col1 INT NOT NULL,
  col2 INT NOT NULL,
  col3 INT NOT NULL);
 
CREATE TABLE b
 (keycol INT PRIMARY KEY,
  col1 INT NOT NULL,
  col2 INT NOT NULL,
  col3 INT NOT NULL);
 
INSERT INTO a VALUES (1,0,0,0),(2,0,0,0);
INSERT INTO b VALUES (1,1,1,1),(3,3,3,3);
INSERT INTO a VALUES (3,0,0,0),(4,0,0,0);
INSERT INTO b VALUES (4,1,1,1),(5,3,3,3);

SELECT * FROM dbo.a
SELECT * FROM dbo.b

merge a using
b 
on a.[keycol]=b.[keycol]
when matched then
update set a.col1=b.col1,a.col2=b.col2,a.col3=b.col3 
when not matched then
insert ([keycol],col1,col2,col3) values (b.[keycol],b.col1,b.col2,b.col3)
when NOT matched BY SOURCE
THEN DELETE;

标签:NULL,INT,col2,col3,keycol,col1,CTE,SQL,Server
From: https://www.cnblogs.com/RaymonGoGo/p/16667569.html

相关文章

  • MySQL第五天
    2022-09-071、Mysql中的清屏:systemclear一般的清屏命令:clear聚合函数2、查询某个表中某个字段的值的个数(使用count)以“students”表(字段有id,name,age,gender,heig......
  • MySQL备份与日志
    MySQL日志管理事务日志innodb_log##事务日志执行逻辑:1.想要修改表,update操作,磁盘内先加载到内存中要执行2.在内存中执行完update3.结果先写入到事务日志,这一条操作确......
  • 巧用SQL语句中的OR查询完成业务新需求-2022新项目
    一、业务场景目前参与开发的项目,之前的一个已上线的版本中有一类查询是根据两张表进行LEFTJOIN查询用来取数据,主表中有一个字段field用来区分不同的数据类型比如说A......
  • mysql数据迁移-换主机,换版本升级
    换主机:--数据量小在线MDP(mysqldump),XBK备份出来,scp到目标主机追加所有备份后的日志申请停机5分钟剩余部分的binlog继续恢复(搭建主从的方式来代替)校验数据进行业务......
  • [安装配置] Linux docker mysql 安装
    一.docker安装MySQLLinux命令:dockerpullmysql:5.7dockerimages查看所有镜像二.创建实例并启动suroot切换到Linuxroot用户dockerrun-p3306:3306--name......
  • SQLI-LABS(Less-8)
    Less-8(GET-Blind-BooleanBased-SingleQuotes)打开Less-8页面,可以看到页面中间有一句PleaseinputtheIDasparameterwithnumericvalue,那么先使用ID这个参数通过GE......
  • 17.1 xlrd模块 17.2接口自动化第一版17.3pymysql模块 17.4接口自动化第二版
    17.1xlrd模块#xlrd和openpyxl#1.什么是xlrd模块?#python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库。#关于xlrd/xlwt和openpyxl的差别#......
  • FreeSql 导入数据的各种场景总结 [C#.NET ORM]
    ......
  • 初入Sql Server 之 存储过程的简单使用
    一、简介简单记录一下存储过程的使用。存储过程是预编译SQL语句集合,也可以包含一些逻辑语句,而且当第一次调用存储过程时,被调用的存储过程会放在缓存中,当再次执行时,则不需......
  • PostgreSQL-数据类型4
    一、range类型范围类型是表示某个元素类型(称为范围的子类型)的一系列值的数据类型。例如,时间戳的范围可用于表示会议室预定的时间范围。在这种情况下,数据类型是tsrange(“t......