Possible Duplicate:
what is “=null” and “ IS NULL”
Is there any difference between IS NULL and =NULL
What is the difference between
where x is null
and
where x = null
and why does the latter not work?
I think that equality is something that can be absolutely determined. The trouble with null
is that it's inherently unknown. Null
combined with any other value is null
- unknown. Asking SQL "Is my value equal to null
?" would be unknown every single time, even if the input is null
. I think the implementation of IS NULL
makes it clear.
First is correct way of checking whether a field value is null
while later won't work the way you expect it to because null
is special value which does not equal anything, so you can't use equality comparison using =
for it.
So when you need to check if a field value is null
or not, use:
where x is null
instead of:
where x = null
It's important to note, that NULL doesn't equal NULL.
NULL
is not a value, and therefore cannot be compared to another value.
where x is null
checks whether x is a null value.
where x = null
is checking whether x equals NULL, which will never be true
Source: Stackoverflow.com