¿Qué son los valores perdidos del sistema?
Los valores perdidos del sistema representan valores de datos que son desconocidos o no se aplican. En las bases de datos, a menudo, se hace referencia a estos valores como valores NULL. Los valores perdidos del sistema son diferentes a los valores en blanco. Un valor en blanco suele definirse en el nodo Tipo como un valor concreto, o como un rango de valores, que puede considerarse como ausente-definido-por-el-usuario. Los valores en blanco se manejan de forma distinta en el contexto del modelado.
Construcción de valores perdidos del sistema
Los valores perdidos del sistema pueden estar presentes en los datos leídos de un origen de datos (por ejemplo, las tablas de base de datos podrían contener valores NULL). Los valores perdidos del sistema se pueden construir utilizando el
valor undef
en expresiones. Por ejemplo, la siguiente expresión CLEM devuelve la edad (Age
) si es menor o igual que 30
, o un valor perdido si es mayor que 30
:
if Age > 30 then undef else Age endif
Los valores ausentes también pueden crearse cuando se realiza una unión externa ("outer join"), cuando un número se divide por cero, cuando se calcula la raíz cuadrada de un número negativo y en otras situaciones.
Visualización de los valores perdidos del sistema
Los valores perdidos del sistema se muestran en tablas y otras salidas como $null$
.
Comprobación de los valores perdidos del sistema
La función especial @NULL se usa para devolver true
si el valor del argumento es un valor de sistema ausente. Por ejemplo:
if @NULL(MyFieldName) then 'It is null' else 'It is not null' endif
Valores perdidos del sistema pasados a funciones
Los valores perdidos del sistema pasados a funciones suelen
propagar valores ausentes a la salida. Por ejemplo, si el valor del campo f1
es un valor de sistema ausente en una determinada fila,
la expresión log(f1)
también evaluará a un valor de sistema ausente para dicha fila. Una excepción es la función @NULL.
Valores perdidos del sistema en expresiones que implican operadores aritméticos
La aplicación de un operador aritmético a valores que incluyen un valor perdido del sistema dan lugar a un valor de sistema ausente. Por ejemplo, si el valor del campo f1
es un valor del sistema que falta en una fila determinada, la expresión f1 + 10
también se evalúa como un valor que falta para dicha fila.
Valores perdidos del sistema en expresiones que implican operadores lógicos
Cuando se trabaja con valores perdidos del sistema que implican operadores lógicos, se aplican las reglas de la lógica de tres valores (true, false y missing, verdadero, falso y ausente respectivamente) y pueden describirse en tablas de verdad. Las tablas de verdad de los operadores lógicos comunes not and y or se muestran en las tablas siguientes.
Operando | Operando NOT |
---|---|
true | falso |
falso | true |
missing | missing |
Operand1 | Operand2 | Operando1 AND Operando2 |
---|---|---|
true | true | true |
true | falso | falso |
true | missing | missing |
falso | true | falso |
falso | falso | falso |
falso | missing | falso |
missing | true | missing |
missing | falso | falso |
missing | missing | missing |
Operand1 | Operand2 | Operando1 OR Operando2 |
---|---|---|
true | true | true |
true | falso | true |
true | missing | true |
falso | true | true |
falso | falso | falso |
falso | missing | missing |
missing | true | true |
missing | falso | missing |
missing | missing | missing |
Valores perdidos del sistema en expresiones que implican operadores de comparación
Cuando se compara un valor de sistema perdido y un valor perdido que no es del sistema, el resultado es un valor perdido del sistema y no uno de verdadero o falso. Los valores perdidos del sistema pueden compararse entre sí; dos valores perdidos del sistema se consideran iguales.
Valores perdidos del sistema en expresiones if/then/else/endif
Cuando se usa una expresión condicional que devuelve un valor de
sistema ausente, la expresión condicional devuelve el valor de la
cláusula else
.
Valores perdidos del sistema en el nodo Seleccionar
Cuando, en un determinado registro, la expresión de selección evalúa a un valor ausente, el registro no se genera en la salida del nodo Seleccionar (esta acción se aplica a los modos Incluir y Descartar).
Valores perdidos del sistema en el nodo Fusionar
Cuando se combina mediante una clave, los registros que tengan valores perdidos del sistema en un campo clave no se combinan.
Valores perdidos del sistema en una agregación
Cuando se agregan datos de columnas, los valores ausentes no se incluyen en el cálculo. Por ejemplo, en una columna con
tres valores { 1
, 2
y
undef
}, la suma de los valores de la columna se calcula como 3
; el valor medio se calcula como 1.5
.