V takovém případě si null představte „neznámý“ (nebo „neexistuje“). V žádném z těchto případů nemůžete říci, že jsou si rovni, protože neznáte hodnotu ani jednoho z nich. Takže null=null se vyhodnotí jako nepravda (false nebo null, v závislosti na vašem systému), protože neznáte hodnoty, abyste mohli říci, že jsou stejné. Toto chování je definováno ve standardu ANSI SQL-92.
EDIT:To závisí na vašem nastavení ansi_nulls. pokud máte ANSI_NULLS vypnuto, bude to vyhodnoceno jako pravda. Spusťte následující kód pro příklad...
set ansi_nulls off
if null = null
print 'true'
else
print 'false'
set ansi_nulls ON
if null = null
print 'true'
else
print 'false'