Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Por que NULL =NULL é avaliado como false no SQL Server


Pense no nulo como "desconhecido" nesse caso (ou "não existe"). Em nenhum desses casos, você não pode dizer que eles são iguais, porque você não sabe o valor de nenhum deles. Portanto, null=null é avaliado como não verdadeiro (falso ou nulo, dependendo do seu sistema), porque você não conhece os valores para dizer que eles são iguais. Esse comportamento é definido no padrão ANSI SQL-92.

EDIT:Isso depende da sua configuração ansi_nulls. se você tiver ANSI_NULLS desativado, isso será avaliado como verdadeiro. Execute o código a seguir para obter um exemplo...
set ansi_nulls off

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


set ansi_nulls ON

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