以下功能怎样用一条语句实现,不用一个insert与update

ChinaITOldMan 2017-12-13 09:26:44
有两个表Tb1与Tb2都有字段F1、F2 、F3与F4,若tb1中F1、F2与tb2中F1、F2相同时,就用tb2的F3、F4更新tb1的F3、F4;
若tb2中的F1与F2在Tb1中不存在时候,就把这条记录插入到Tb1,一般我们用下面两条语句书写,一条Insert、一条Update;
请问有没有办法只用一条语句实现?

update tb1 set f3=b.f3, f4=b.f4 from tb1 a, tb2 b where a.f1=b.f1 and a.f2=b.f2
insert into tb1 select b.*from tb2 b left join tb1 on a.f1=b.f1 and a.f2=b.f2
where a.f1 IS NULl and a.f2 IS NULL

表ta、tb及查询结果如下图

...全文
185 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ChinaITOldMan 2017-12-13
  • 打赏
  • 举报
回复
谢谢两位大版本,请问SQL Server 除Mines、intersect等集合的运算命令外还有哪些集合命令或特殊命令?谢谢!
吉普赛的歌 2017-12-13
  • 打赏
  • 举报
回复
引用 3 楼 mcxhh2005 的回复:
请问SQL Server是不是只有企业版本才支持Merge这个功能?
SQL Server2008 或以上版本
ChinaITOldMan 2017-12-13
  • 打赏
  • 举报
回复
请问SQL Server是不是只有企业版本才支持Merge这个功能?
zjcxc 2017-12-13
  • 打赏
  • 举报
回复
不支持merge 的版本,可以用 before insert 触发器,在触发器中判断存在做update,不存在做 insert
zjcxc 2017-12-13
  • 打赏
  • 举报
回复
支持 meger 的版本上可以用 merge
merge tb1 a using tb2 b on a.f1=b.f1 and a.f2=b.f2
when matched then update set f3=b.f3, f4=b.f4
when not matched by target then insert(f1,f2,f3,f4) values(b.f1,b.f2,b.f3,b.f4);
基于ESP8266和Arduino的心率 (BPM) 监测器(源代码 + 原理图) 心率或脉搏是每分钟心跳的次数 (BPM)。虽然心脏在全身循环氧气和富含营养的血液,但心率是这一过程的基础,因为心脏的功能(称为“心输出量”)与心率和每搏输出量(泵出的血量)直接相关。每个节拍)。因此,心率或节律的快速激增或消耗可能表明心脏病、肺部疾病或其他问题。因此,跟踪我们的心率可以让我们深入了解我们的整体健康状况。 虽然有很多方法和系统来监测和跟踪心率(BPM),但在这个项目中,我专注于开发一种新设备,它具有易于理解的移动应用程序界面,与 Android 和 iOs 兼容,用于观察由脉搏血氧仪传感器。 我决定在这个项目中使用涂鸦物联网平台,因为它允许我开发一个兼容各种操作系统的移动应用程序界面,并将信息保存到涂鸦云中,以跟踪脉搏血氧仪传感器产生的数据。在接下来的步骤中,我将详细说明我如何从涂鸦物联网平台中受益以改进该项目。 当我从头开始开发此设备以监测和跟踪心率 (BPM) 时,我不想让该设备仅使用一种类型的脉搏血氧仪传感器。因此,该设备支持连接到 Arduino Nano 的两种不同传感器类型: MAX30102 MAX30100 我可以使用提到的两个传感器,但我决定使用 MAX30102。然后,我连接了一个SSD1306 OLED(128x64)屏幕显示心率(BPM),然后发送数据到涂鸦云。 最后,我添加了一个 5mm 共阳极 RGB LED 来显示设备和涂鸦云之间的连接状态。 在涂鸦云支持的移动应用界面上,设备让用户通过相关图表显示三个不同的数据点: Finger_In - 手指定位 呼吸频率 - BPM Blood_Oxygen - SpO2(可选) Blood_Oxygen - 红光测量(可选) 在面包板上完成接线并测试代码后,我设计了受呼吸系统启发的 PCB 作

22,302

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧