Abfrage A ist dasselbe wie:
select 'true' where 3 = 1 or 3 = 2 or 3 = 3 or 3 = null
Da 3 = 3 wahr ist, erhalten Sie ein Ergebnis.
Abfrage B ist dasselbe wie:
select 'true' where 3 <> 1 and 3 <> 2 and 3 <> null
Wenn ansi_nulls eingeschaltet ist, 3 <> null ist UNKNOWN, also wird das Prädikat zu UNKNOWN ausgewertet und Sie erhalten keine Zeilen.
Wenn ansi_nulls ist aus, 3 <> null wahr ist, also wird das Prädikat als wahr ausgewertet und Sie erhalten eine Zeile.