Ir para conteúdo principal Pular para conteúdo complementar

Tratamento do valor NULL

Quando nenhum dado puder ser produzido para um determinado campo como resultado de uma consulta à base de dados e/ou de uma junção entre tabelas, geralmente o resultado será normalmente um valor NULL.

Visão geral

A lógica do Qlik Sense trata as seguintes ocorrências como valores NULL:

  • Os valores NULL retornados por uma conexão ODBC.

  • Valores NULL criados como resultado de uma concatenação forçada de tabelas no script de carregamento de dados.

  • Valores NULL criados como resultado de uma junção feita no script de carga de dados

  • Valores NULL criados como resultado da geração de combinações de valores de campo a serem mostrados em uma tabela

Nota informativaGeralmente, é impossível usar esses valores NULL para associações e seleções, exceto quando a instrução NullAsValue estiver sendo usada.

Para obter mais informações sobre o NullAsValue, consulte NullAsValue.

Por definição, os arquivos de texto não podem conter valores NULL.

Associando/selecionando valores NULL do ODBC

É possível associar e/ou selecionar valores NULL de uma fonte de dados ODBC. Para isso, foi definida uma variável de script. A seguinte sintaxe pode ser usada:

SET NULLDISPLAY=<sym>;

O símbolo <sym> substituirá todos os valores NULL da fonte de dados ODBC no nível mais baixo da entrada de dados. <sym> pode ser qualquer string.

Para restaurar essa funcionalidade à interpretação padrão, use a seguinte sintaxe:

SET NULLDISPLAY=;

Nota informativaO uso de NULLDISPLAY afeta somente os dados de uma fonte de dados ODBC.

Se desejar que a lógica do Qlik Sense interprete valores NULL retornados de uma conexão ODBC como uma string vazia, inclua o seguinte texto no script antes de qualquer declaração SELECT:

SET NULLDISPLAY=";

Nota informativaAqui, '' realmente significa duas aspas simples sem nada entre elas.

Para obter mais informações sobre o NullDisplay, consulte NullDisplay .

Criando valores NULL de arquivos de texto

É possível definir um símbolo que, quando ocorrer em um arquivo de texto ou em uma cláusula inline, seja interpretado como um valor NULL real. Use o seguinte comando:

SET NULLINTERPRET=<sym>;

O símbolo <sym> deve ser interpretado como NULL. <sym> pode ser qualquer string.

Para restaurar essa funcionalidade à interpretação padrão, use:

SET NULLINTERPRET=;

Nota informativa O uso de NULLINTERPRET afeta somente os dados de arquivos de texto e cláusulas inline.

Para obter mais informações sobre o NullInterpret, consulte NullInterpret .

Propagação de valores NULL em expressões

Os valores NULL se propagarão por meio de uma expressão de acordo com algumas regras lógicas e bastante razoáveis.

Funções

A regra geral é que as funções retornam NULL quando os parâmetros ficam fora do intervalo para o qual a função está definida.

Exemplos
Expressão Resultado
asin(2) retorna NULL
log(-5) retorna NULL
round(A,0) retorna NULL

Como resultado, as funções em geral retornam NULL quando qualquer um dos parâmetros necessários à avaliação é NULL.

Exemplos
Expressão Resultado
sin(NULL) retorna NULL
chr(NULL) retorna NULL
if(NULL, A, B) retorna B
if(True, NULL, A) retorna NULL
if(True, A, NULL) retorna A

A exceção à segunda regra são as funções lógicas para teste de tipo.

Exemplos
Expressão Resultado
isnull(NULL) retorna True (-1)
isnum(NULL) retorna False (0)

Operadores aritméticos e de string

Se NULL for encontrado em qualquer lado desses operadores, o resultado será NULL.

Exemplos
Expressão Resultado
A + NULL retorna NULL
A - NULL retorna NULL
A / NULL retorna NULL
A * NULL retorna NULL
NULL / A retorna NULL
0 / NULL retorna NULL
0 * NULL retorna NULL
A & NULL retorna A

Operadores relacionais

Se NULL for encontrado em qualquer lado dos operadores relacionais, serão aplicadas regras especiais.

Exemplos
Expressão Resultado
NULL (qualquer operador de relação) NULL retorna NULL
A <> NULL retorna True (-1)
A < NULL retorna False (0)
A <= NULL retorna False (0)
A = NULL retorna False (0)
A >= NULL retorna False (0)
A > NULL retorna False (0)

Esta página ajudou?

Se você encontrar algum problema com esta página ou seu conteúdo - um erro de digitação, uma etapa ausente ou um erro técnico - informe-nos como podemos melhorar!