A.2. A Note on Equality
☝
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 Bon A.id is not distinct from B.code
Likewise, in cases where you want to test against NULL for a condition of inequality, 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 Bon A.id is distinct from B.code