0
需要help.Below是我在DB2中运行的查询。如果从中获取要更新的值的内部查询没有返回值,则列将被设置为null,覆盖以前的值。如果选择查询返回空值,那么可以避免这种情况并保留以前的值将列更新为空,覆盖现有值
UPDATE
EMPLOYEE demo
SET
demo.PREFERREDTELEPHONE = (SELECT
CONCAT(TRIM(ph.PHONENUMBER),
TRIM(ph.PHONEAREACODE))
FROM
EVIDENCE ed
JOIN
CONCERNROLEPHONENUMBER cnum
ON cnum.CONCERNROLEID = ed.PARTICIPANTID
JOIN
PHONENUMBER ph
ON ph.PHONENUMBERID = cnum.PHONENUMBERID
WHERE
ed.CASEID = demo.INTEGRATEDCASEID
AND ed.PARTICIPANTID= demo.PARTICIPANTID
AND ed.EVIDENCETYPE = 'PDC0000256'
AND ed.STATUSCODE = 'EDS1'
AND ed.LASTWRITTEN = (
SELECT
MAX(ed1.LASTWRITTEN)
FROM
EVIDENCE ed1
WHERE
ed1.CASEID=ed.CASEID
AND ed1.PARTICIPANTID=ed.PARTICIPANTID
AND ed1.EVIDENCETYPE = 'PDC0000256'
AND ed1.STATUSCODE = 'EDS1'
) FETCH FIRST 1 ROW ONLY
)
COALESCE可以用来设置一定的值(旧的内容)时,别的东西(查询)返回null – MichaelTiefenbacher