【发布时间】:2020-11-17 13:40:15
【问题描述】:
我正在尝试在 oracle 中编写一个查询,以便仅根据以下情况更新一个标志:
场景:
一个 mctn_id 与多个 PRPR_ID 链接,每个 PRPR_ID 可以有不同的地址,如果 ALL PRPR_ID 地址不属于配置表地址,我需要将表中的标志更新为 N。如果其中任何一个属于配置表地址,则不应将标志更新为 N。
我正在使用 not exists 在这种情况下不起作用。
update prcb_enroll_tbl
set prov_flg ='N',
sys_insert_dtm = systimestamp
where tin_number in (select mctn_id
from cc_pr_prov prpr
inner join cc_pr_addr prad
on prpr.prpr_id = prad.prad_id
and not exists (select 1
from fsg_prcb_config config
where prad.prad_addr1 = config.config_value)
即使只有一个地址属于配置表,上述查询正在更新一个标志,这不是预期的结果。
【问题讨论】:
标签: sql oracle subquery where-clause oracle12c