Si je comprends bien, vous devez utiliser une outer join
Au lieu. Vous pouvez ensuite utiliser COALESCE
pour retourner la valeur associée à "DEF" si T2.REF
est NULL
:
SELECT T1.CODE,
T2.CODE,
T3.VALUE
FROM TABLE1 T1
LEFT JOIN TABLE2 T2 ON T1.REF = T2.CODE
LEFT JOIN TABLE3 T3 ON COALESCE(T2.REF,'DEF') = T3.CODE
WHERE T1.CODE = XXXXX