Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Warum wird NULL =NULL in SQL Server als falsch ausgewertet?

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'