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.