Propagação de valores NULL em expressões
Os valores NULL 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.
Exemplo:
- 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.
Exemplo:
- 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.
Exemplo:
- 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.
Exemplo:
- 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.
Exemplo:
- 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 >= retorna False (0)
- A > NULL retorna False (0)