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

Wartości NULL wewnątrz klauzuli NOT IN

Zapytanie A jest takie samo jak:

select 'true' where 3 = 1 or 3 = 2 or 3 = 3 or 3 = null

Ponieważ 3 = 3 to prawda, otrzymasz wynik.

Zapytanie B jest takie samo jak:

select 'true' where 3 <> 1 and 3 <> 2 and 3 <> null

Kiedy ansi_nulls jest włączone, 3 <> null jest NIEZNANE, więc predykat przyjmuje wartość NIEZNANE i nie otrzymujesz żadnych wierszy.

Kiedy ansi_nulls jest wyłączone, 3 <> null jest prawdziwe, więc predykat ma wartość prawda i otrzymujesz wiersz.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Najlepszy sposób na wykonanie zagnieżdżonej logiki instrukcji case w SQL Server

  2. Typy danych tekstowych, ntext i obrazu> nie mogą być porównywane ani sortowane, z wyjątkiem przypadku użycia operatora IS NULL lub LIKE>

  3. Jak uzyskać pierwszy i ostatni dzień poprzedniego miesiąca (ze znacznikiem czasu) w SQL Server

  4. Pojawia się dziwny błąd, zapytanie SQL Server przy użyciu klauzuli `WITH`

  5. Plusy i minusy używania SqlCommand Prepare w C#?