sql >> Database >  >> RDS >> Sqlserver

Waarom evalueert NULL =NULL naar onwaar in de SQL-server?

Zie de nul in dat geval als "onbekend" (of "bestaat niet"). In beide gevallen kun je niet zeggen dat ze gelijk zijn, omdat je de waarde van geen van beide kent. Dus null=null evalueert tot niet waar (false of null, afhankelijk van uw systeem), omdat u de waarden niet kent om te zeggen dat ze gelijk ZIJN. Dit gedrag is gedefinieerd in de ANSI SQL-92-standaard.

EDIT:Dit hangt af van je ansi_nulls-instelling. als je ANSI_NULLS hebt uitgeschakeld, zal dit worden geëvalueerd als waar. Voer de volgende code uit voor een voorbeeld...

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. Hoe kan ik de inhoud van een orakeltabel naar een bestand exporteren?

  2. Simple Encrypted Arithmetic Library (SEAL) en de variabele seal::Ciphertext

  3. De data van Pasen voor elk jaar bepalen in Oracle PLSQL

  4. Oracle-queryresultaten exporteren naar een JSON-bestand bij gebruik van SQLcl