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

IS NULL w porównaniu z <> 1 bitem SQL

Powód <> nie działa to, że SQL traktuje NULL jako nieznany - nie wie co NULL ma znaczyć, więc oblicza zarówno = i <> na NULL wartość jako NIEZNANE (co jest traktowane jako fałsz w klauzuli WHERE lub warunku dołączenia). Aby uzyskać więcej informacji, przeczytaj to:Dlaczego NULL =NULL daje wartość false na serwerze SQL .

Jeśli znajduje się na nim indeks, użycie funkcji ISNULL oznacza, że ​​indeks nie może być użyty, więc aby upewnić się, że zapytanie może używać indeksu, wystarczy użyć LUB :

SELECT * 
FROM TableName
WHERE
   bit_column_value IS NULL OR bit_column_value = 0


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. TSQL Try / Catch w ramach transakcji lub odwrotnie?

  2. Jeśli rekord istnieje, zaktualizuj inną wstawkę

  3. Odczytaj konfigurację .NET z bazy danych

  4. Różnica między Equi-Join i Inner-Join w SQL

  5. Kod stanu błędu strony internetowej SSRS 500