Часто лучшим подходом является использование left join
s:
select id,
coalesce(wss1.col, wss2.col) as col
from [#Temp1] AD left join
[#Temp2] SS1
ON AD.Id = SS1.Id left join
[#Temp2] SS2
ON SS2.Code = AD.Code AND AD.ID IS NULL LEFT JOIN
wTable1 WSS1
ON WSS1.Id = SS1.PID LEFT JOIN
wTable1 WSS2
ON WSS2.ID = SS2.PID
WHERE SS1.ID IS NOT NULL OR SS2.CODE IS NOT NULL; -- one of the joins works
Я не могу обещать, что это работает в вашем конкретном случае, потому что вы не предоставили данные образца и желаемые результаты.Тем не менее, этот подход работает в подобных случаях.