Why is x  1 false when x is null? I have a query where a row is selected when field1 &lt;&gt; 10.

When field1 is null, this predicate is false!

According to my primitive maths, if null &lt;&gt; 10 = false, then 10 = null.

What is the rational for this?
This is because a comparison to NULL actually results in unknown. NULL is the absence of data and so you are comparing a value against nothing and the result cannot be determined.


  When null values are present in data, logical and comparison operators can potentially return a third result of UNKNOWN instead of just TRUE or FALSE. This need for three-valued logic is a source of many application errors. These tables outline the effect of introducing null comparisons.


Taken from the documentation on MSDN.