# 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 NULL.



## Vista general

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

* Valores NULL devueltos de una conexión ODBC.

* Valores NULL creados como resultado de una concatenación forzada de tablas en el script de carga de datos.

* Valores NULL creados como resultado de una unión efectuada en el script de carga de datos

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

Nota informativaEn 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](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/NullAsValue.htm).

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:

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/null-value-handling.htm)SET NULLDISPLAY=&lt;sym&gt;;

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

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

SET NULLDISPLAY=;

Nota informativaEl 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 informativaAquí " son dos signos de entrecomillado simple, o comillas simples, sin nada entre ellas.

Para más información sobre NullDisplay, vea [NullDisplay](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ValueHandlingVariables/NullDisplay.htm).

## 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. Utilice la siguiente sentencia:

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/null-value-handling.htm)SET NULLINTERPRET=&lt;sym&gt;;

El símbolo &lt;sym&gt; se debe interpretar como NULL. &lt;sym&gt; puede ser cualquier cadena de caracteres.

Para restablecer esta funcionalidad a las opciones predeterminadas, utilice:

SET NULLINTERPRET=;

Nota informativa 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](https://help.qlik.com/es-ES/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ValueHandlingVariables/NullInterpret.htm).

## 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 &lt;&gt; NULL | devuelve True (-1) |
| A &lt; NULL | devuelve False (0) |
| A &lt;= NULL | devuelve False (0) |
| A = NULL | devuelve False (0) |
| A &gt;= NULL | devuelve False (0) |
| A &gt; NULL | devuelve False (0) |