Замечание о равенстве
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