Propagacja wartości NULL w wyrażeniach

NULL Wartości są propagowane w wyrażeniach według kilku reguł logicznych zgodnych z intuicją.

Funkcje

Ogólna zasada jest taka, że funkcje zwracają wartość NULL, jeśli ich parametry wykraczają poza zakres zdefiniowanych wartości działania funkcji.

Example:  

asin(2)

zwraca

NULL

log(-5)

zwraca

NULL

round(A,0)

zwraca

NULL

Z powyższej reguły wynika, że funkcje zazwyczaj zwracają wartość NULL, jeśli dowolny z parametrów niezbędnych do obliczenia wartości jest równy NULL.

Example:  

sin(NULL)

zwraca

NULL

chr(NULL)

zwraca

NULL

if(NULL, A, B)

zwraca

B

if(True, NULL, A)

zwraca

NULL

if(True, A, NULL)

zwraca

A

Wyjątkiem od tej drugiej reguły są funkcje logiczne sprawdzające typ.

Example:  

isnull(NULL)

zwraca

True (-1)

isnum(NULL)

zwraca

False (0)

Operatory arytmetyczne i działające na ciągach znaków

Jeśli po dowolnej stronie tych operatorów napotykana jest wartość NULL, zwracana jest wartość NULL.

Example:  

A

+

NULL

zwraca

NULL

A

-

NULL

zwraca

NULL

A

/

NULL

zwraca

NULL

A

*

NULL

zwraca

NULL

NULL

/

A

zwraca

NULL

0

/

NULL

zwraca

NULL

0

*

NULL

zwraca

NULL

A

&

NULL

zwraca

A

Operatory relacyjne

Obsługa wartości NULL po dowolnej stronie operatorów relacyjnych podlega specjalnym zasadom.

Example:  

NULL

rel.op

NULL

zwraca

NULL

A

<>

NULL

zwraca

True (-1)

A

<

NULL

zwraca

False (0)

A

<=

NULL

zwraca

False (0)

A

=

NULL

zwraca

False (0)

A

>=

NULL

zwraca

False (0)

A

>

NULL

zwraca

False (0)