根据另一个表中的数据更新表

时间:2017-10-16 05:30:20

标签: oracle sql-update

我有一个名为DWCUST的表,其中包含各种拼写错误的性别值。 我想根据GENDER表将无效的GENDERSPELLING值替换为正确的值。

例如,如果gender表的dwcust列中有一个字段显示Male,我希望将其更改为M

这是性别拼写表:

Invalid Value      New_Value

        MAIL       M
        WOMAN      F
        FEM        F
        FEMALE     F
        MALE       M
        GENTLEMAN  M
        MM         M
        FF         F
        FEMAIL     F

这是我到目前为止所尝试的更新,但我不断收到错误:'GS.NEW_VALUE'无效标识符。

UPDATE (SELECT DW.GENDER 
FROM DWCUST DW, GENDERSPELLING GS
WHERE DW.GENDER = GS.INVALID_VALUE)
SET DW.GENDER = GS.NEW_VALUE;

1 个答案:

答案 0 :(得分:0)

一个选项使用相关子查询:

M

这会尝试查找尚未FGENDERSPELLING的任何性别(已接受的值)。如果visibility GONE表可能无法覆盖不正确的值,则可以稍微修改我的查询以保留当前值。