Problem polega na porównaniu NULL. Jeśli a.field1 lub b.field3 ma wartość NULL, należy użyć instrukcji IS NULL lub IS NOT NULL. Możesz użyć wartości domyślnej dla a.field1 i b.field3 z funkcją ISNULL.
ISNULL(a.field1,0) <> ISNULL(b.field3,0)
w tym przypadku następuje porównanie z wartością 0.
SELECT IIF(NULL=NULL,'true','false') — wynik jest fałszywy. Niesamowite!