La razón <>
no funciona es que SQL trata NULL
como desconocido - no sabe qué NULL
se supone que significa, por lo que evalúa tanto =
y <>
en un NULL
valor como UNKNOWN
(que se trata como falso en una cláusula where o condición de unión). Para obtener más información, lea esto:¿Por qué NULL =NULL se evalúa como falso en el servidor SQL
.
Si hay un índice en él, usar la función ISNULL significará que el índice no se puede usar, por lo que para asegurarse de que la consulta pueda usar el índice, simplemente use OR
:
SELECT *
FROM TableName
WHERE
bit_column_value IS NULL OR bit_column_value = 0