不求甚解

此博客为个人学习之用,如与其他作品雷同,纯属巧合。
随笔 - 156, 文章 - 1, 评论 - 2, 阅读 - 10万

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

Q:oracle库,同时更新表的两个字段?

Posted on   三年三班王小朋  阅读(21)  评论(0编辑  收藏  举报

在执行这些操作之前,建议先备份数据或在一个测试环境中验证这些SQL语句的效果,以避免意外的数据丢失。

1、使用 UPDATE 结合子查询:

对于t2表中col字段为空的记录,如果t1表中有对应的col值相同的记录,则使用t1表中的col1和col2字段值更新t2表的相关字段。

UPDATE t2
SET (col1, col2) = (SELECT t1.col1, t1.col2 
                     FROM t1 
                     WHERE t1.col = t2.col)
WHERE EXISTS (SELECT 1 
              FROM t1 
              WHERE t1.col = t2.col)
AND t2.col1 IS NULL;

2、如果没有非空条件,可使用MERGE 语句。oracle不支持MERGE 增加条件。

根据t1表中的数据更新t2表中的记录,如下

MERGE INTO t2
USING t1
ON (t1.col = t2.col)
WHEN MATCHED THEN
    UPDATE SET 
        t2.col1 = t1.col1,
        t2.col2 = t1.col2;

 

相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示