# 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.

Exemple :

* 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.

Exemple :

* 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.

Exemple :

* 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.

Exemple :

* 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.

Exemple :

* NULL rel.op NULL renvoie NULL
* A &lt;&gt; NULL renvoie True (-1)
* A &lt; NULL renvoie False (0)
* A &lt;= NULL renvoie False (0)
* A = NULL renvoie False (0)
* A &gt;= renvoie False (0)
* A &gt; NULL renvoie False (0)