Důvod <> nefunguje je, že SQL zachází s NULL jako neznámý - neví co NULL má znamenat, takže vyhodnotí obě = a <> na NULL hodnotu jako UNKNOWN (což je považováno za nepravdivé v klauzuli where nebo podmínce spojení). Pro více informací si přečtěte toto:Proč se hodnota NULL =NULL na serveru SQL vyhodnotí jako nepravda
.
Pokud je na něm index, použití funkce ISNULL bude znamenat, že index nelze použít, takže pro zajištění, že dotaz může index používat, stačí použít OR :
SELECT *
FROM TableName
WHERE
bit_column_value IS NULL OR bit_column_value = 0