sql >> Databasteknik >  >> RDS >> Sqlserver

Varför utvärderas NULL =NULL till false i SQL-servern

Tänk på noll som "okänt" i så fall (eller "finns inte"). I något av dessa fall kan du inte säga att de är lika, eftersom du inte vet värdet av någon av dem. Så null=null utvärderas till inte sant (falskt eller null, beroende på ditt system), eftersom du inte känner till värdena för att säga att de ÄR lika. Detta beteende definieras i ANSI SQL-92-standarden.

EDIT:Detta beror på din ansi_nulls-inställning. om du har ANSI_NULLS avstängd KOMMER detta att utvärderas till sant. Kör följande kod som ett exempel...

set ansi_nulls off

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


set ansi_nulls ON

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


  1. Upprepa en sträng flera gånger i MySQL – REPEAT()

  2. Posten som returneras från funktionen har kolumner sammanlänkade

  3. Microsoft SQL Server 2005/2008:XML vs text/varchar datatyp

  4. Skaffa språket som för närvarande används i SQL Server