sql >> Base de Datos >  >> RDS >> Sqlserver

¿Por qué NULL =NULL se evalúa como falso en el servidor SQL?

Piense en el nulo como "desconocido" en ese caso (o "no existe"). En cualquiera de esos casos, no puedes decir que son iguales, porque no sabes el valor de ninguno de ellos. Entonces, null=null se evalúa como falso (falso o nulo, según su sistema), porque no conoce los valores para decir que SON iguales. Este comportamiento está definido en el estándar ANSI SQL-92.

EDITAR:Esto depende de su configuración ansi_nulls. si tiene ANSI_NULLS desactivado, esto se evaluará como verdadero. Ejecute el siguiente código para ver un ejemplo...

set ansi_nulls off

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


set ansi_nulls ON

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