Traduzido e adaptado de NULL – The Invisible Nothing  Autorizado por hic.


NULL não é um valor. É a ausência de valores. É um ponteiro  que marca essa ausência.

 

Como Qlikview demonstra o conceito do nada - quando essa informação é importante para o usuário?

Para investigar isso, usaremos uma base de dados com duas tabelas. Clientes e Pedidos. A tabela Clientes é uma lista de clientes e a tabela Pedidos é a lista de pedidos que esses clientes fizeram.

 

Lista

Na figura abaixo, você fez uma seleção em dois clientes that não fizeram nenhum pedido, ou seja, eles estão presentes na tabela Clientes mas não existe nenhum registro correspondente na tabela Pedidos. Como resultado, todos valores na lista OrderID estão em cinza (cinza em Qlik é um valor não relacionado à atual seleção).

List+box+NULL.png

Em outras palavras, em uma lista o valor NULL não é visível. Se todos os valores estão marcados como cinza então o conjunto vazio é a resposta à seleção, ou seja NULL é o resultado.

 

Se você possui uma lista e você pode visualizar um valor que é branco, que você consegue clicar nele, selecionando, então esse valor não é NULL.

 

NULL não são visíveis em uma lista e nunca podem ser selecionados. Se consegue selecionar não é um nulo, é uma string em branco ou ou um outro tipo de espaço.

 

Tabelas

Em uma tabela simples, e em todos outros lugares que um NULL pode aparecer (caixas de texto, botões,etc) ele é exibido como um tracinho "-". Nestes casos o NULL é visível, mas não pode ser selecionado (não adianta clicar nele)

Table+box+NULL.png

Dimensões em Gráficos

 

Em um gráfico (ou tabela dinâmica e gráfico tabela), as coisas são um pouco mais complicadas. Em primeiro lugar, um NULL pode ocorrer tanto como um valor na dimensão quanto em uma medida (expressão). Estes casos são diferentes e não devem ser confundidos. Ainda mais, os dois casos são gerenciados de maneiras diferentes nas propriedades do gráfico.

 

Com nossas tabelas, seria razoável construir um gráfico que exiba as vendas por cliente. Se existirem pedidos que não estão associados a nenhum cliente, então você irá obter um NULL na dimensão do gráfico. Esse NULL é exibido como um "-". Veja abaixo que o pedido 10874 não possui nenhum cliente associado.

Chart+dimension+NULL+C.png

Se você não quiser ver essa linha, ou seja suprimir os valores NULL nas dimensões, pode configurar isso na aba Dimensões do seu gráfico

Capturar.PNG

 

 

 

Expressões de Gráfico

Se no entanto você tem clientes que não tem pedidos associados, você irá obter NULL nos campos OrderID e Amount. Entretanto, as funções Sum() e Count() irão retornar 0, o que está correto, já que SUM(NULL) é zero. Outras funções de agregação tal como Only() podem retornar NULL, e neste caso serão exibidos como "-".

Chart+expression+NULL+C.png

Se você não quiser que essas linhas sejam exibidas (com zeros e nulos) você pode suprimir na aba Apresentação das propriedades do seu gráfico.

Capturar.PNG

 

Resumindo, NULL as vezes são visíveis, outras não. Algumas vezes são exibidos como "-", e quando agregados, normalmente retornam 0. Mas lembre-se, nunca são selecionáveis (clicáveis).

 

E com isso, espero que o mistério sobre NULLs esteja um pouco menor.

 

 

 

PS. In this blog post, I use “NULL” to denote both real NULLs and missing values. What the difference is? Read this (updated) white paper and find out. There you can also read about how to make NULLs both visible and selectable.