Propagazione dei valori NULL nelle espressioni
I valori NULL si propagano attraverso un'espressione, in base a poche regole logiche e completamente comprensibili.
Funzioni
La regola generale è che tale funzione restituisce un valore NULL quando i parametri non rientrano nella scala per cui è definita la funzione.
Esempio:
- asin(2) restituisce NULL
- log(-5) restituisce NULL
- round(A,0) restituisce NULL
Come risultato dell'esempio precedente, in genere questo tipo di funzioni restituisce un valore NULL quando il valore di uno dei parametri necessari per la valutazione è NULL.
Esempio:
- sin(NULL) restituisce NULL
- chr(NULL) restituisce NULL
- if(NULL, A, B) restituisce B
- if(True, NULL, A) restituisce NULL
- if(True, A, NULL) restituisce A
L'eccezione relativa alla seconda regola concerne funzioni logiche di verifica del tipo.
Esempio:
- isnull(NULL) restituisce True (-1)
- isnum(NULL) restituisce False (0)
Operatori aritmetici e su stringa
Se NULL è presente in uno di questi operatori, viene restituito NULL.
Esempio:
- A + NULL restituisce NULL
- A - NULL restituisce NULL
- A / NULL restituisce NULL
- A * NULL restituisce NULL
- NULL / A restituisce NULL
- 0 / NULL restituisce NULL
- 0 * NULL restituisce NULL
- A & NULL restituisce A
Operatori relazionali
Se è presente un valore NULL in una qualsiasi parte degli operatori relazionali, si applicano delle regole speciali.
Esempio:
- NULL rel.op NULL restituisce NULL
- A <> NULL restituisce True (-1)
- A < NULL restituisce False (0)
- A <= NULL restituisce False (0)
- A = NULL restituisce False (0)
- A >= restituisce False (0)
- A > NULL restituisce False (0)