Используйте правильный JOIN
синтаксис и разумные псевдонимы таблиц:
UPDATE WT
SET SLT_MEMBER = E.NAME
FROM PS_GHS_FTE_SLT GFS JOIN
PS_EMPLOYEES E
ON E.POSITION_NBR = (CASE WHEN GFS.POSITION_NBR2 <> '' THEN GFS.POSITION_NBR2 ELSE GFS.POSITION_NBR
END) JOIN
#WORKTABLE WT
ON GFS.DEPTID COLLATE Latin1_General_BIN = WT.DEPTID COLLATE Latin1_General_BIN
WHERE E.EMPL_STATUS = 'A';
Я, как правило, не фанат использования CASE
для ON
и WHERE
предложений.В этом случае, однако, выборочно выбирается только один столбец, поэтому меня это не сильно беспокоит.