如何修改这条update语句,以便在GENDERSPELLING表中找不到该值时,将GENDER设置为'U'?
UPDATE DWCUST DW
SET GENDER = (SELECT NEW_VALUE FROM GENDERSPELLING GS
WHERE DW.GENDER = GS.INVALID_VALUE)
WHERE GENDER NOT IN ('M', 'F');发布于 2017-10-20 15:29:00
我想这应该行得通。
UPDATE DWCUST DW
SET GENDER = (
SELECT CASE WHEN MAX(NEW_VALUE) IS NULL
THEN 'U'
ELSE MAX(NEW_VALUE)
END
FROM GENDERSPELLING GS
WHERE DW.GENDER = GS.INVALID_VALUE
)
WHERE GENDER NOT IN ('M', 'F');发布于 2017-10-20 15:55:46
您可以使用COALESCE (或Oracle的NVL)将NULL转换为'U'
update dwcust dw
set gender =
nvl((select new_value from genderspelling gs where dw.gender = gs.invalid_value), 'U')
where gender not in ('M', 'F');https://stackoverflow.com/questions/46844184
复制相似问题