FirebirdSQL logo

Note sur l’égalité

Important

Cette observation sur les opérateurs d’égalité et d’inégalité s’applique à tout Firebird.

L’opérateur =, qui est utilisé dans de nombreuses conditions, ne compare que des valeurs entre elles. Selon la norme SQL, NULL n’est pas une valeur et, par conséquent, deux valeurs NULL ne sont ni égales ni inégales l’une à l’autre. Si vous voulez que les valeurs NULL correspondent l’une à l’autre lorsqu’elles sont combinées, utilisez l’opérateur IS NOT DISTINCT FROM.

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

De même, si vous voulez que les valeurs NULL soient différentes de toute valeur et que deux valeurs NULL soient traitées comme égales, utilisez l’opérateur IS DISTINCT FROM au lieu de l’opérateur <>.

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