我使用的是Oracle数据库。我是个新手,知道的也不多。
我有两个表,我们称它们为表1和表2。
表1:
--------------------------------------------
config id| ISO value | and more columns
----------------------------------------------表2:
------------------------------------------
config id | ISO value | and more columns
------------------------------------------这就是问题所在。在前端,使用的配置id来自表1。表1具有100%的配置id。表1的ISO值也为空。表2只有表1中使用的配置id的50%,但是表2中所有可用的配置id都有一个ISO值。因此,这意味着表2中没有ISO值为空。
每个ISO值只有一个配置id,反之亦然。
有没有办法比较和匹配表1和表2中的两个配置Id,如果匹配,则使用表2中的ISO值?因为在表1中,ISO值为null。这样,至少50%的配置ids将具有ISO值。我该如何写一个查询来做这件事呢?或者我怎么才能做到这一点呢?
发布于 2021-08-16 13:06:23
一个简单的包含update子句的merge是另一种选择。这个应该行得通:
BEGIN
MERGE INTO tbl_1 t1
USING (SELECT config_id
, iso_value
FROM tbl_2
WHERE config_id IS NOT NULL) t2
ON (t1.config_id = t2.config_id)
WHEN MATCHED THEN UPDATE SET t1.iso_value = t2.iso_value;
COMMIT;
END;
/https://stackoverflow.com/questions/68786098
复制相似问题