Tänk på noll som "okänt" i så fall (eller "finns inte"). I något av dessa fall kan du inte säga att de är lika, eftersom du inte vet värdet av någon av dem. Så null=null utvärderas till inte sant (falskt eller null, beroende på ditt system), eftersom du inte känner till värdena för att säga att de ÄR lika. Detta beteende definieras i ANSI SQL-92-standarden.
EDIT:Detta beror på din ansi_nulls-inställning. om du har ANSI_NULLS avstängd KOMMER detta att utvärderas till sant. Kör följande kod som ett exempel...
set ansi_nulls off
if null = null
print 'true'
else
print 'false'
set ansi_nulls ON
if null = null
print 'true'
else
print 'false'