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