Pomyśl o null jako „nieznane” w tym przypadku (lub „nie istnieje”). W żadnym z tych przypadków nie możesz powiedzieć, że są równe, ponieważ nie znasz wartości żadnego z nich. Tak więc null=null zwraca wartość nieprawda (false lub null, w zależności od systemu), ponieważ nie znasz wartości, które mówią, że są równe. To zachowanie jest zdefiniowane w standardzie ANSI SQL-92.
EDYCJA:To zależy od ustawienia ansi_nulls. jeśli masz wyłączone ANSI_NULLS, zostanie to ocenione jako prawda. Uruchom poniższy kod jako przykład...
set ansi_nulls off
if null = null
print 'true'
else
print 'false'
set ansi_nulls ON
if null = null
print 'true'
else
print 'false'