Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Perché NULL =NULL restituisce false nel server SQL

Pensa al null come "sconosciuto" in quel caso (o "non esiste"). In nessuno di questi casi, non puoi dire che sono uguali, perché non conosci il valore di nessuno dei due. Quindi, null=null restituisce non true (false o null, a seconda del tuo sistema), perché non conosci i valori per dire che SONO uguali. Questo comportamento è definito nello standard ANSI SQL-92.

EDIT:dipende dalla tua impostazione ansi_nulls. se hai ANSI_NULLS disattivato, questo verrà valutato come true. Esegui il codice seguente per un esempio...

set ansi_nulls off

if null = null
    print 'true'
else
    print 'false'


set ansi_nulls ON

if null = null
    print 'true'
else
    print 'false'