Tratamento de registros com valores omissos do sistema

O que são valores omissos do sistema?

Os valores ausentes do sistema representam valores de dados que não são conhecidos ou não aplicáveis. Em bancos de dados, esses valores costumam ser chamados de valores NULL. Valores omissos do sistema são diferentes de valores em branco. Os valores em branco são normalmente definidos no nó Tipo como valores particulares, ou intervalos de valores, que podem ser considerados como omissos definidos pelo usuário. Valores em branco são manipulados diferentemente no contexto de modelagem.

Construindo valores omissos do sistema

Os valores ausentes do sistema podem estar presentes em dados lidos de uma fonte de dados (por exemplo, as tabelas de banco de dados podem conter valores NULL). Os valores ausentes do sistema podem ser construídos usando o valor undef em expressões. Por exemplo, a expressão do CLEM a seguir retorna Age, se menor ou igual a 30, ou um valor ausente se maior que 30:

if Age > 30 then undef else Age endif

Valores omissos também podem ser criados quando uma junção externa é executada, quando um número é dividido por zero, quando a raiz quadrada de um número negativo é calculada e em outras situações.

Exibindo valores omissos do sistema

Valores omissos do sistema são exibidos em tabelas e outras saídas como $null$.

Testando valores omissos do sistema

Use a função especial @NULL para retornar true se o valor do argumento for um valor ausente do sistema. Por exemplo:

if @NULL(MyFieldName) then 'It is null' else 'It is not null' endif

Valores omissos do sistema passados para funções

Valores omissos do sistema que são passados para funções geralmente propagam valores omissos para a saída. Por exemplo, se o valor do campo f1 for um valor omisso do sistema em uma determinada linha, a expressão log(f1) também será avaliada para um valor omisso do sistema para essa linha. Uma exceção é a função @NULL.

Valores omissos do sistema em expressões que envolvem operadores aritméticos

A aplicação de operadores aritméticos em valores que incluem um valor omisso do sistema resulta em um valor omisso do sistema. Por exemplo, se o valor de campo f1 for um valor ausente do sistema em uma determinada linha, então a expressão f1 + 10 também será avaliada a um valor ausente do sistema para essa linha.

Valores omissos do sistema em expressões que envolvem operadores lógicos

Ao trabalhar com valores ausentes do sistema em expressões que envolvem operadores lógicos, as regras da lógica de três valores (true, false e missing) se aplicam e podem ser descritas em tabelas de verdade. As tabelas de verdade para os operadores lógicos comuns de not, and e or são mostradas nas seguintes tabelas.

Tabela 1. Tabela de verdade para NOT
Operando Operando NOT
verdadeiro Não
Não verdadeiro
ausente ausente
Tabela 2. Tabela de verdade para AND
Operand1 Operand2 Operand1 AND Operand2
verdadeiro verdadeiro verdadeiro
verdadeiro Não Não
verdadeiro ausente ausente
Não verdadeiro Não
Não Não Não
Não ausente Não
ausente verdadeiro ausente
ausente Não Não
ausente ausente ausente
Tabela 3. Tabela de verdade para OR
Operand1 Operand2 Operand1 OR Operand2
verdadeiro verdadeiro verdadeiro
verdadeiro Não verdadeiro
verdadeiro ausente verdadeiro
Não verdadeiro verdadeiro
Não Não Não
Não ausente ausente
ausente verdadeiro verdadeiro
ausente Não ausente
ausente ausente ausente

Valores omissos do sistema em expressões que envolvem operadores de comparação

Quando você compara um valor omisso do sistema e um valor não omisso do sistema, o resultado é avaliado para um valor omisso do sistema em vez de para um resultado verdadeiro ou falso. Valores omissos do sistema podem ser comparados uns com os outros; dois valores omissos do sistema são considerados iguais.

Valores omissos do sistema em expressões if/then/else/endif

Quando você usa uma expressão condicional, e a expressão condicional retorna um valor omisso do sistema, o valor da cláusula else é retornado da expressão condicional.

Valores omissos do sistema no nó de Seleção

Quando, para um determinado registro, a expressão de seleção é avaliada para um valor omisso, o registro não é emitido do nó de Seleção (essa ação se aplica aos modos Inclusão e Descarte).

Valores omissos do sistema no nó de Mesclagem

Quando você mescla usando uma chave, nenhum registro que tem valores omissos do sistema em um campo-chave é mesclado.

Valores omissos do sistema em agregação

Quando você agrega dados em colunas, valores omissos não são incluídos no cálculo. Por exemplo, em uma coluna com três valores { 1, 2, and undef }, a soma dos valores na coluna é calculada como 3; o valor médio é calculado como 1.5.