Propagación de valores NULL en expresiones
Los valores NULL se propagarán a través de una expresión de acuerdo con unas pocas reglas lógicas.
Funciones
La regla general es que las funciones devuelven NULL cuando los parámetros se salen del rango para el cual se ha definido la función.
Ejemplo:
- asin(2) devuelve NULL
- log(-5) devuelve NULL
- round(A,0) devuelve NULL
Como resultado de lo arriba expuesto se infiere que las funciones generalmente devuelven NULL cuando cualquiera de los parámetros necesarios para la evaluación son NULL.
Ejemplo:
- sin(NULL) devuelve NULL
- chr(NULL) devuelve NULL
- if(NULL, A, B) devuelve B
- if(True, NULL, A) devuelve NULL
- if(True, A, NULL) devuelve A
La excepción a la segunda regla es que las funciones lógicas comprueban el tipo.
Ejemplo:
- isnull(NULL) devuelve True (-1)
- isnum(NULL) devuelve False (0)
Operadores aritméticos y de cadena
Si se encuentra NULL a cualquier lado de estos operadores, devuelve NULL.
Ejemplo:
- A + NULL devuelve NULL
- A - NULL devuelve NULL
- A / NULL devuelve NULL
- A * NULL devuelve NULL
- NULL / A devuelve NULL
- 0 / NULL devuelve NULL
- 0 * NULL devuelve NULL
- A & NULL devuelve A
Operadores relacionales
Si se encuentra NULL en cualquier lado de los operadores relacionales, se aplican reglas especiales.
Ejemplo:
- NULL rel.op NULL devuelve NULL
- A <> NULL devuelve True (-1)
- A < NULL devuelve False (0)
- A <= NULL devuelve False (0)
- A = NULL devuelve False (0)
- A >= devuelve False (0)
- A > NULL devuelve False (0)