Problém je s porovnáním NULL. Pokud má a.field1 nebo b.field3 hodnotu NULL, musíte použít příkaz IS NULL nebo IS NOT NULL. Můžete použít výchozí hodnotu pro a.field1 a b.field3 s funkcí ISNULL.
ISNULL(a.field1,0) <> ISNULL(b.field3,0)
v tomto případě dochází k porovnání s hodnotou 0.
SELECT IIF(NULL=NULL,'true','false') -- Výsledek je nepravdivý. Úžasné!