Propagação de valores NULL em expressões

NULL Os valores se propagarão por meio de uma expressão de acordo com algumas regras lógicas e bastante razoáveis.

Funções

A regra geral é que as funções retornam NULL quando os parâmetros ficam fora do intervalo para o qual a função está definida.

Example:  

asin(2)

retorna

NULL

log(-5)

retorna

NULL

round(A,0)

retorna

NULL

Como resultado, as funções em geral retornam NULL quando qualquer um dos parâmetros necessários à avaliação é NULL.

Example:  

sin(NULL)

retorna

NULL

chr(NULL)

retorna

NULL

if(NULL, A, B)

retorna

B

if(True, NULL, A)

retorna

NULL

if(True, A, NULL)

retorna

A

A exceção à segunda regra são as funções lógicas para teste de tipo.

Example:  

isnull(NULL)

retorna

True (-1)

isnum(NULL)

retorna

False (0)

Operadores aritméticos e de caractere

Se NULL for encontrado em qualquer lado desses operadores, o resultado será NULL.

Example:  

A

+

NULL

retorna

NULL

A

-

NULL

retorna

NULL

A

/

NULL

retorna

NULL

A

*

NULL

retorna

NULL

NULL

/

A

retorna

NULL

0

/

NULL

retorna

NULL

0

*

NULL

retorna

NULL

A

&

NULL

retorna

A

Operadores relacionais

Se NULL for encontrado em qualquer lado dos operadores relacionais, serão aplicadas regras especiais.

Example:  

NULL

rel.op

NULL

retorna

NULL

A

<>

NULL

retorna

True (-1)

A

<

NULL

retorna

False (0)

A

<=

NULL

retorna

False (0)

A

=

NULL

retorna

False (0)

A

>=

NULL

retorna

False (0)

A

>

NULL

retorna

False (0)