Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Pourquoi NULL =NULL est-il évalué à false dans le serveur SQL

Considérez le null comme "inconnu" dans ce cas (ou "n'existe pas"). Dans l'un ou l'autre de ces cas, vous ne pouvez pas dire qu'ils sont égaux, car vous ne connaissez pas la valeur de l'un ou de l'autre. Ainsi, null=null est évalué comme non vrai (faux ou nul, selon votre système), car vous ne connaissez pas les valeurs pour dire qu'elles SONT égales. Ce comportement est défini dans la norme ANSI SQL-92.

EDIT :Cela dépend de votre paramètre ansi_nulls. si ANSI_NULLS est désactivé, cela sera évalué à true. Exécutez le code suivant pour un exemple...

set ansi_nulls off

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


set ansi_nulls ON

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