如何在Oracle SQL中的两个表之间使用更新

时间:2014-04-17 18:09:29

标签: sql oracle plsql updating

希望这相对简单。我想更新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

1 个答案:

答案 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(这是您的语法对原始查询的建议)。