Årsagen <> ikke virker, er at SQL behandler NULL som ukendt - den ved ikke hvad NULL formodes at betyde, så det evaluerer både = og <> på en NULL værdi som UKENDT (som behandles som falsk i en where-klausul eller join-betingelse). For mere info, læs dette:Hvorfor evalueres NULL =NULL til falsk i SQL-serveren
.
Hvis der er et indeks på det, vil brug af ISNULL-funktionen betyde, at indekset ikke kan bruges, så for at sikre, at forespørgslen kan bruge indekset, skal du blot bruge ELLER :
SELECT *
FROM TableName
WHERE
bit_column_value IS NULL OR bit_column_value = 0