希望这相对简单。我想更新Oracle中的表,但要比较的数据是在两个表之间。我怎么能做到这一点?我尝试了以下SQL,但在尝试之后知道错误:
UPDATE gm_prc
SET gm.RETAIL_DT = '01-JAN-2000'
from gm_prc gm, itm_prc_cmp3 itm
where gm.sku_num = itm.SKU_NUM
and gm.PC_NUM = itm.PC_NUM
答案 0 :(得分:1)
您使用的语法不适用于Oracle。但您可以使用标准SQL执行此操作:
UPDATE gm_prc
SET RETAIL_DT = '01-JAN-2000'
WHERE EXISTS (SELECT 1
FROM itm_prc_cmp3 itm
WHERE gm_prc.sku_num = itm.SKU_NUM AND
gm_prc.PC_NUM = itm.PC_NUM
);
这应该适用于Oracle和SQL Server(这是您的语法对原始查询的建议)。