De reden <> niet werkt, is dat SQL NULL behandelt als onbekend - het weet niet wat NULL zou moeten betekenen, dus het evalueert zowel = en <> op een NULL waarde als UNKNOWN (die wordt behandeld als onwaar in een where-clausule of join-voorwaarde). Lees dit voor meer informatie:Waarom evalueert NULL =NULL naar onwaar in SQL-server
.
Als er een index op staat, betekent het gebruik van de ISNULL-functie dat de index niet kan worden gebruikt, dus om ervoor te zorgen dat de query de index kan gebruiken, gebruikt u gewoon OR :
SELECT *
FROM TableName
WHERE
bit_column_value IS NULL OR bit_column_value = 0