Manejo de valores NULL

Cuando no se pueden generar datos para un campo determinado como resultado de una consulta de base de datos y/o una unión entre tablas, el resultado es normalmente un valor nulo o NULL.

General

La lógica de Qlik Sense trata lo siguiente como valores NULL reales:

  • NULL valores devueltos de una conexión ODBC

  • NULL valores creados como resultado de una concatenación forzada de tablas en el script de carga de datos

  • NULL valores creados como resultado de una unión efectuada en el script de carga de datos

  • NULL valores creados como resultado de generar combinaciones de valores de campo para mostrarlos en una tabla.

Nota: En general, es imposible utilizar estos valores NULL para asociaciones y selecciones, excepto cuando se está empleando la sentencia NullAsValue.

Para más información sobre NullAsValue, vea NullAsValue.

Los archivos de texto por definición no pueden contener valores NULL.

Asociar/seleccionar valores NULL desde ODBC

Es posible asociar y/o seleccionar valores NULL desde una fuente de datos ODBC. Para este fin, se ha definido una variable de script. Se puede aplicar la sintaxis siguiente:

SET NULLDISPLAY=<sym>;

El símbolo <sym> sustituirá todos los valores NULL de la fuente de datos ODBC en el nivel más bajo de entrada de datos. <sym> puede ser cualquier cadena.

Para restablecer esta funcionalidad a la establecida por defecto, utilice la sintaxis siguiente:

SET NULLDISPLAY=;

Nota: El uso de NULLDISPLAY solo afecta a los datos de una fuente de datos ODBC.

Si desea que la lógica de Qlik Sense interprete los valores NULL devueltos desde una conexión ODBC como una cadena vacía, agregue lo siguiente a su script antes de cualquier sentencia SELECT:

SET NULLDISPLAY=";

Nota: Aquí " son dos signos de entrecomillado simple, o comillas simples, sin nada entre ellas.

Para más información sobre NullDisplay, vea NullDisplay .

Crear valores NULL desde archivos de texto

Es posible definir un símbolo, que cuando aparece en un archivo de texto o una cláusula inline se interpretará como un valor NULL real. Use la siguiente sentencia:

SET NULLINTERPRET=<sym>;

El símbolo <sym> se debe interpretar como NULL. <sym> puede ser cualquier cadena.

Para restablecer esta funcionalidad a la establecida por defecto, use:

SET NULLINTERPRET=;

Nota: El uso de NULLINTERPRET solo afecta a datos de archivos de texto y cláusulas inline.

Para más información sobre NullInterpret, vea NullInterpret .

Propagación de valores NULL en expresiones

Los valores NULL se propagarán a través de una expresión de acuerdo con algunas reglas lógicas y bastante razonables.

Funciones

La regla general es que las funciones devuelven NULL cuando los parámetros caen fuera del rango para el que se ha definido la función.

Ejemplos
Expresión Resultado
asin(2) devuelve NULL
log(-5) devuelve NULL
round(A,0) devuelve NULL

Como resultado de lo anterior, las funciones generalmente devuelven NULL cuando alguno de los parámetros necesarios para la evaluación es NULL.

Ejemplos
Expresión Resultado
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.

Ejemplos
Expresión Resultado
isnull(NULL) devuelve True (-1)
isnum(NULL) devuelve False (0)

Operadores aritméticos y de cadena

Si NULL se encuentra a cualquier lado de estos operadores, devuelve NULL.

Ejemplos
Expresión Resultado
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 NULL se encuentra a cualquier lado de los operadores relacionales se aplican reglas especiales.

Ejemplos
Expresión Resultado
NULL (cualquier operador relacional) NULL devuelve NULL
A <> NULL devuelve True (-1)
A < NULL devuelve False (0)
A <= NULL devuelve False (0)
A = NULL devuelve False (0)
A >= NULL devuelve False (0)
A > NULL devuelve False (0)