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