Fråga A är samma som:
select 'true' where 3 = 1 or 3 = 2 or 3 = 3 or 3 = null
Eftersom 3 = 3
är sant, du får ett resultat.
Fråga B är samma som:
select 'true' where 3 <> 1 and 3 <> 2 and 3 <> null
När ansi_nulls
är på, 3 <> null
är OKÄNT, så predikatet utvärderas till OKÄNT, och du får inga rader.
När ansi_nulls
är avstängd, 3 <> null
är sant, så predikatet utvärderas till sant, och du får en rad.