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

Hvorfor evalueres NULL =NULL til falsk i SQL-serveren

Tænk på nullet som "ukendt" i så fald (eller "eksisterer ikke"). I nogen af ​​disse tilfælde kan du ikke sige, at de er ens, fordi du ikke kender værdien af ​​nogen af ​​dem. Så null=null evalueres til ikke sand (falsk eller null, afhængigt af dit system), fordi du ikke kender værdierne for at sige, at de ER ens. Denne adfærd er defineret i ANSI SQL-92-standarden.

EDIT:Dette afhænger af din ansi_nulls indstilling. hvis du har ANSI_NULLS fra, VIL dette vurderes til sandt. Kør følgende kode for et eksempel...

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. GRUPPER EFTER vs. BESTIL EFTER

  2. SQL Server:Kommunikationsforbindelsesfejl Påkrævet SSL (kan ikke modtage pakke)

  3. Implementer MySQL relationelle databaser på Ubuntu 12.04 (præcis Pangolin)

  4. Få størrelsen på en database i MariaDB