Мислете за null като за "неизвестен" в този случай (или "не съществува"). В нито един от тези случаи не можете да кажете, че са равни, защото не знаете стойността на нито един от тях. Така че null=null се оценява като невярно (false или null, в зависимост от вашата система), защото не знаете стойностите, за да кажете, че СА равни. Това поведение е дефинирано в стандарта ANSI SQL-92.
РЕДАКТИРАНЕ:Това зависи от вашата настройка ansi_nulls. ако сте изключили ANSI_NULLS, това ЩЕ се оцени като истина. Изпълнете следния код за пример...
set ansi_nulls off
if null = null
print 'true'
else
print 'false'
set ansi_nulls ON
if null = null
print 'true'
else
print 'false'