Saltar al contenido principal

Propagación de valores NULL en expresiones

EN ESTA PÁGINA

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.

Example:  

  • 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.

Example:  

  • 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.

Example:  

  • 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.

Example:  

  • 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.

Example:  

  • 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)