Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Dlaczego NULL =NULL daje wartość false w serwerze SQL?

Pomyśl o null jako „nieznane” w tym przypadku (lub „nie istnieje”). W żadnym z tych przypadków nie możesz powiedzieć, że są równe, ponieważ nie znasz wartości żadnego z nich. Tak więc null=null zwraca wartość nieprawda (false lub null, w zależności od systemu), ponieważ nie znasz wartości, które mówią, że są równe. To zachowanie jest zdefiniowane w standardzie ANSI SQL-92.

EDYCJA:To zależy od ustawienia ansi_nulls. jeśli masz wyłączone ANSI_NULLS, zostanie to ocenione jako prawda. Uruchom poniższy kod jako przykład...

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wybierz kolumnę, jeśli inna kolumna jest pusta

  2. Uruchamianie programu SQL Server 2014 na maszynie wirtualnej platformy Azure

  3. Przenoszenie systemowych baz danych w klastrze pracy awaryjnej programu SQL Server

  4. Znajdź indeks ostatniego wystąpienia podciągu za pomocą T-SQL

  5. EXP() Przykłady w SQL Server