在执行这些操作之前,建议先备份数据或在一个测试环境中验证这些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;
浙公网安备 33010602011771号