FirebirdSQL logo

Замечание о равенстве

Important

Это замечание об операторах равенства и неравенства применяется повсюду в СУБД Firebird.

Оператор “=”, который используется во многих условиях, сравнивает только значения со значениями.В соответствии со стандартом SQL, NULL не является значением и, следовательно, два значения NULL не равны и ни неравны друг с другом.Если необходимо, чтобы значения NULL соответствовали друг другу при объединении, используйте оператор IS NOT DISTINCT FROM.Этот оператор возвращает истину, если операнды имеют то же значение, или, если оба они равны NULL.

SELECT *
FROM A
JOIN B ON A.id IS NOT DISTINCT FROM B.code

Точно так же, если вы хотите чтобы значения NULL отличались от любого значения и два значения NULL считались равными, используйте оператор IS DISTINCT FROM вместо оператора “<>”.

SELECT *
FROM A
JOIN B ON A.id IS DISTINCT FROM B.code