iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >SQLServer中merge函数如何使用
  • 124
分享到

SQLServer中merge函数如何使用

2024-04-02 19:04:59 124人浏览 八月长安
摘要

本篇文章给大家分享的是有关sqlServer中merge函数如何使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Merge关键字是一个神奇的

本篇文章给大家分享的是有关sqlServer中merge函数如何使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

Merge关键字是一个神奇的DML关键字。它在SQL Server 2008被引入,它能将Insert,Update,Delete简单的并为一句。MSDN对于Merge的解释非常的短小精悍:”根据与源表联接的结果,对目标表执行插入、更新或删除操作。

MERGE 目标表

USING 源表

ON 匹配条件

WHEN MATCHED THEN

语句

WHEN NOT MATCHED THEN

语句;

其中最后语句分号不可以省略,且源表既可以是一个表也可以是一个子查询语句

WHEN NOT MATCHED BY TARGET

表示目标表不匹配,BY TARGET是默认的,所以上面我们直接使用WHEN NOT MATCHED THEN

WHEN NOT MATCHED BY SOURCE

表示源表不匹配,即目标表中存在,源表中不存在的情况。

主要用法:

merge无法多次更新同一行,也无法更新和删除同一行

当源表和目标表不匹配时:若数据是源表有目标表没有,则进行插入操作若数据是源表没有而目标表有,则进行更新或者删除数据操作当源表和目标表匹配时:进行更新操作或者删除操作when matched 这个子句可以有两个,当有两个时,第一个子句必须是when matched and condition且两个matched子句只会执行一个,且两个子句必须是一个update和一个delete操作when not matched by source和上面类似

merge icr_codemap_bak as ausing icr_codemap as bon a.COLNAME = b.COLNAME and a.ctcode = b.ctcodewhen matched and b.pbcode <> a.pbcodethen update set a.pbcode = b.pbcodewhen not matchedthen insert values(b.colname,b.ctcode,b.pbcode,b.note);

可以比对字段不一致进行更新

https://technet.microsoft.com/zh-cn/library/bb510625.aspx 这个是MSDN的网址

在 Merge Matched 操作中,只能允许执行 UPDATE 或者 DELETE 语句。在 Merge Not Matched 操作中,只允许执行 INSERT 语句。一个 Merge 语句中出现的 Matched 操作,只能出现一次 UPDATE 或者 DELETE 语句,否则就会出现下面的错误 - An action of type 'WHEN MATCHED' cannot appear more than once in a 'UPDATE' clause of a MERGE statement.Merge 语句最后必须包含分号,以 ; 结束。

ps:SQL Server中Merge-using的用法

在执行之前:

merge into UserInfo uusing chartinfo c on u.UserId=c.UserIdwhen matched and u.UserName=c.UserName then update set u.lastUpdate=c.LastUpdatewhen not matched --为not matched时 不能为update(没有匹配成功 当然不能update了) then insert (UserName,Sex)values('ZhangZhao','b');

执行之后

Merge和using搭配用于特别是BI上数据统计和分析上 比如 要求子表中没有的数据那么父表中就要删除对应的数据 保证子表和父表的数据对应 如果按照常规的做法是 跑个作业 然后通过游标/表值函数/临时表等等循环的获取数据然后更新父表 这样是很浪费效率的 这时Merge派上用场了。

以上就是SQLServer中merge函数如何使用,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: SQLServer中merge函数如何使用

本文链接: https://www.lsjlt.com/news/56249.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SQLServer中merge函数如何使用
    本篇文章给大家分享的是有关SQLServer中merge函数如何使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Merge关键字是一个神奇的...
    99+
    2024-04-02
  • Java中merge()函数如何使用
    Java中merge()函数如何使用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。merge() 怎么用假设我们有这么一段业务逻辑,我有一个学生成绩对象的列表,...
    99+
    2023-06-16
  • 如何在python中使用merge函数
    本篇文章为大家展示了如何在python中使用merge函数,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整型)、lon...
    99+
    2023-06-14
  • merge()函数如何在Pandas中使用
    今天就跟大家聊聊有关merge()函数如何在Pandas中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、merge函数用途pandas中的merge()函数类似于SQL中jo...
    99+
    2023-06-14
  • SQLServer中CONVERT 函数如何使用
    SQLServer中CONVERT 函数如何使用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。代码如下: SELECT CONV...
    99+
    2024-04-02
  • SQLServer中SplitString函数如何使用
    今天就跟大家聊聊有关SQLServer中SplitString函数如何使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。代码如下: SET ANS...
    99+
    2024-04-02
  • 如何使用R中的merge()函数合并数据
    本篇内容主要讲解“如何使用R中的merge()函数合并数据”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用R中的merge()函数合并数据”吧!使用R中merge()函数合并数据在R中可以...
    99+
    2023-07-05
  • 怎么在python中使用merge函数
    本篇文章为大家展示了怎么在python中使用merge函数,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比,Pytho...
    99+
    2023-06-14
  • SQLServer数据库中如何使用ISNULL函数
    SQLServer数据库中如何使用ISNULL函数,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。  SQLServer数据库I...
    99+
    2024-04-02
  • SQLServer中如何使用Partition By和row_number 函数
    这期内容当中小编将会给大家带来有关SQLServer中如何使用Partition By和row_number 函数,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。首先呢我把...
    99+
    2024-04-02
  • oracle中merge into如何使用
    oracle中merge into如何使用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。merge into的形式:MERGE IN...
    99+
    2024-04-02
  • SQLServer RANK()排名函数如何使用
    今天小编给大家分享一下SQLServer RANK()排名函数如何使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧...
    99+
    2023-06-29
  • R语言中的merge函数怎么使用
    在R语言中,merge函数用于合并两个数据框(data frame)。该函数的一般用法如下: merged_df <- mer...
    99+
    2024-03-04
    R语言
  • 使用R中merge()函数合并数据的方法
    目录使用R中merge()函数合并数据如何使用merge()获取数据集中交叉部分如何理解不同类型的合并如何实现完整合并(full outer join)总结使用R中merge()函数...
    99+
    2023-03-19
    R merge()函数合并数据 R merge()函数 R合并数据
  • SQLserver中如何使用convert函数转换日期格式
    这篇文章给大家介绍SQLserver中如何使用convert函数转换日期格式,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。SQL Server中文版的默认的日期字段datetime格式...
    99+
    2024-04-02
  • Python的concat与merge函数怎么使用
    这篇“Python的concat与merge函数怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python的conc...
    99+
    2023-06-30
  • sqlserver中如何自定义函数
    这期内容当中小编将会给大家带来有关sqlserver中如何自定义函数,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。“自定义函数”是我们平常的说法,而“用户定义的函数”是 ...
    99+
    2024-04-02
  • SQLServer中的row_number函数怎么使用
    本文小编为大家详细介绍“SQLServer中的row_number函数怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“SQLServer中的row_number函数怎么使用”文章能帮助大家解决疑惑,...
    99+
    2023-03-07
    sqlserver row_number
  • sqlserver中的len函数怎么使用
    在SQL Server中,LEN函数用于返回指定字符串的字符数。使用LEN函数的语法如下: SELECT LEN(colum...
    99+
    2024-04-09
    sqlserver
  • Sqlserver中如何使用 timestamp数据类
    这篇文章给大家介绍Sqlserver中如何使用 timestamp数据类,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。在SQL Server中联机丛书是这样说的: SQL Server...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作