I have a table with a column called status of type smallint and accepts null. Sql server 2000.
My data contains mostly 2 in that field, but also 0 and null.
When I do
select *
from table
where status <> 2
I don’t get all the proper records (where status is null or 0). Any idea why this is happening and how to correct? Shouldn’t <> give me everything other than 2?
NULL doesn’t compare: so remove it.
Your example is the “common mistake” on Wikipedia too…