首页 > 数据库 >SQL Server Merge matched 再加其他条件的示例

SQL Server Merge matched 再加其他条件的示例

时间:2022-12-06 14:13:31浏览次数:41  
标签:code name temp 示例 update Server source SQL target

这里介绍使用临时表的方式进行Merge,额外的条件语句用红色标出:

假设有一个字典表 dic_dict

第一步 先创建临时表
create table #temp_source( [code] [varchar](20) COLLATE CHINESE_PRC_CI_AS not null, [name] [varchar](1000) COLLATE CHINESE_PRC_CI_AS not null )

第二步 临时表中插入要merge的数据(可以用批量插入)
insert into #temp_source (code,name)values(@code,@name)

第三步 使用merge加其他条件 翻译就是:根据code是否存在进行对比更新。如果存在 同时name不相同的时候 对name进行更新。 如果code不存在 则 执行插入。
merge into dic_dict
target using #temp_source source
on (target.code = source.code )
when matched
and (target.name != source.name)
then update set target.name = source.name,update_date= GETDATE()
when not matched
then insert (code,name,update_date)
values (source.code,source.name,GETDATE());

第四步 删除临时表
drop table #temp_source

  

标签:code,name,temp,示例,update,Server,source,SQL,target
From: https://www.cnblogs.com/Early-Bird/p/16955050.html

相关文章

  • SQL Server自动备份并定时清理备份文件
    在我们现有的系统中数据库的重要性不言而喻,为了避免数据宕机或误操作造成的数据丢失情况的产生,定期对数据库进行备份是必须要做的工作,下面将介绍SQLServer自带的数据库备......
  • MySQL忽略大小写的注意事项
    一、背景在阿里的规范中,不允许超过2个JOIN的关联查询,故项目中需要将复杂SQL拆分二、问题目前MySQL5.7非特殊场景默认选择utf8mb4,排序选择utf8mb4_general_ci,MySQL8默认选择u......
  • Android实验十——使用SQLite数据库存储数据
    一、实验要求和目的掌握SQLite数据库的操作方法;掌握SQLiteOpenHelper类的使用。掌握Lsitview的使用。二、实验环境部署有AndroidStudio和AndroidSDK的主机;建议......
  • sqlserver恢复数据
    若出事故的你希望能通过本文来弥补之前的错误。那么在开始阅读本文之前请先确认误操作库之前是否有一次完整数据库备份,若没有请不要再往下看了本文全程的操作仅需10分钟左......
  • pgsql 判断当前日期是否在两个时间范围
     需求  需求是当前时间根据活动开始时间与结束时间,得出一个状态值,同时并且支持搜索  2解决这里简捷的做法是直接写sql 这里使用casewhen 进行时间判......
  • mysql:数据量过多时使用索引覆盖
    1.什么是索引?索引(在MySQL中也叫“键key”)是存储引擎快速找到记录的一种数据结构,通俗来说类似书本的目录,这个比方虽然被用的最多但是也是最恰如其当的,在查询书本中的......
  • SQLServer查询语句执行计划
    一、使用SQL执行计划看SQL语句执行计划有三种方式:①快捷键按Ctrl+L;②选中要执行的SQL然后点击右键,弹出的菜单里面选“显示估计的执行计划”;③按Ctrl+M打开显示执行计划窗......
  • 数据分析工具 Excel、PowerBI、Python、SQL、JVS哪一个更好用?
    先上对比分析产品对比使用低门槛实施效率功能覆盖度上线周期低使用成本企业分析场景Excel★★★★★★★★★★★☆☆☆☆★★★★★★★★★★★★☆☆☆PowerBI★★★☆☆......
  • flink sql 程序消费kafka数据到mysql设置参数connector.url问题汇总
    1.问题现象:使用flinksql程序消费kafka数据写入mysql时,使用TVF表值函数,START_ENENT_TIME和END_ENENT_TIME始终比消费时间小大约13小时。解决办法在写入mysql的sink......
  • 配方数据下发构建sql
    针对特殊下发可通过下面的sql进行构建(需要数据源行数和下发地址行数匹配):WITHTMPAS(SELECTCodeNO,Model,ShortCode,ModelCodeFROMPM_CodeInfoWHERECodeNO='......