Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

IS NULL срещу <> 1 SQL бит

Причината <> не работи е, че SQL третира NULL като неизвестен - не знае какво NULL се предполага, че означава, така че оценява и двете = и <> на NULL стойност като UNKNOWN (което се третира като невярно в клауза where или условие за свързване). За повече информация прочетете това:Защо NULL =NULL се оценява на false в SQL сървър .

Ако има индекс върху него, използването на функцията ISNULL ще означава, че индексът не може да се използва, така че за да сте сигурни, че заявката може да използва индекса, просто използвайте OR :

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. Импортирайте колони на електронни таблици на Excel в базата данни на SQL Server

  2. Как да сравните datetime само с дата в SQL Server

  3. Логически проблем на SQL и заявка за кръстосано прилагане

  4. Не можа да се намери съхранена процедура 'dbo.aspnet_CheckSchemaVersion'

  5. Как работи EXCEPT в SQL Server