根据条件用一个表的字段,去更新另一个表的字段

注意ON关联值不能重复。

复制代码
SELECT A.A1,A.A2,B.B1,B2 FROM TABLEA A
LEFT JOIN TABLEB B
ON A.A1 = B.B1
WHERE A.A2 IS NULL AND B.B2 IS NOT NULL

------------------------------------

MERGE INTO TABLEA A
USING TABLEB  B 
ON (A.A1 = B.B1 ) 
WHEN MATCHED AND A.A2 IS NULL AND B.B2 IS NOT NULL THEN 
UPDATE SET A.A2=B.B2 
--这个比UPDATE的好处就是只全表扫描一次,还可以一次性做多个操作,如UPDATE,INSTER,DELETE
--WHEN NOT MATCHED THEN
--INSERT....
复制代码

数据量少的情况下,容易理解的

UPDATE A a  SET(A1) = (SELECT b.B1 FROM B b where  a.ID=b.ID)
WHERE EXISTS (SELECT 1 FROM B b WHERE a.ID = b.ID);

 

posted @   VipSoft  阅读(3947)  评论(0编辑  收藏  举报
编辑推荐:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示