![[Important]](file:/C:/Program%20Files/Oxygen%20XML%20Editor%2016/frameworks/docbook/css/img/important.png) |
Important |
|
This note about equality and inequality operators applies
everywhere in Firebird's SQL language.
|
The “=” operator, which is
explicitly used in many conditions, only matches values to values.
According to the SQL standard, NULL is not a
value and hence two NULLs are neither equal nor
unequal to one another. If you need NULLs to
match each other in a condition, use the IS NOT DISTINCT
FROM operator. This operator returns true if the operands
have the same value or if they are both
NULL.
select *
from A join B
on A.id is not distinct from B.code
Likewise, in cases where you want to test against NULL for
a condition of inequalityequality, use IS DISTINCT
FROM, not “<>”. If
you want NULL to be considered different from any
value and two NULLs to be considered equal:
select *
from A join B
on A.id is distinct from B.code