Propagation de valeurs NULL dans les expressions
Les valeurs NULL se propagent dans une expression selon certaines règles logiques et de bon sens.
Fonctions
D'après la règle générale, une fonction renvoie la valeur NULL lorsque les paramètres se trouvent en dehors de la plage pour laquelle la fonction est définie.
- asin(2) renvoie NULL
- log(-5) renvoie NULL
- round(A,0) renvoie NULL
Il s'ensuit que les fonctions renvoient généralement la valeur NULL lorsque l'un des paramètres nécessaires à l'évaluation est NULL.
- sin(NULL) renvoie NULL
- chr(NULL) renvoie NULL
- if(NULL, A, B) renvoie B
- if(True, NULL, A) renvoie NULL
- if(True, A, NULL) renvoie A
Les fonctions logiques qui testent le type de données font exception à la deuxième règle.
- isnull(NULL) renvoie True (-1)
- isnum(NULL) renvoie False (0)
Opérateurs arithmétiques et opérateurs de chaîne
Si NULL se trouve d'un côté ou de l'autre de ces opérateurs, la fonction renvoie la valeur NULL.
- A + NULL renvoie NULL
- A - NULL renvoie NULL
- A / NULL renvoie NULL
- A * NULL renvoie NULL
- NULL / A renvoie NULL
- 0 / NULL renvoie NULL
- 0 * NULL renvoie NULL
- A & NULL renvoie A
Opérateurs relationnels
Si NULL se trouve d'un côté ou de l'autre des opérateurs relationnels, des règles spécifiques s'appliquent.
- NULL rel.op NULL renvoie NULL
- A <> NULL renvoie True (-1)
- A < NULL renvoie False (0)
- A <= NULL renvoie False (0)
- A = NULL renvoie False (0)
- A >= renvoie False (0)
- A > NULL renvoie False (0)