Betrachten Sie die Null in diesem Fall als "unbekannt" (oder "existiert nicht"). In beiden Fällen können Sie nicht sagen, dass sie gleich sind, weil Sie den Wert von keinem von ihnen kennen. Also wird null=null als nicht wahr ausgewertet (false oder null, abhängig von Ihrem System), weil Sie die Werte nicht kennen, um zu sagen, dass sie gleich sind. Dieses Verhalten ist im ANSI SQL-92-Standard definiert.
BEARBEITEN:Dies hängt von Ihrer ansi_nulls-Einstellung ab. Wenn Sie ANSI_NULLS deaktiviert haben, wird dies als wahr ausgewertet. Führen Sie den folgenden Code als Beispiel aus...
set ansi_nulls off
if null = null
print 'true'
else
print 'false'
set ansi_nulls ON
if null = null
print 'true'
else
print 'false'