QlikView – Analisando uma lista de valores

 

No SQL temos um recurso bastante interessante para analisar uma lista de valores, o “IN”, logo que comecei a utilizar o QlikView senti falta de um recurso semelhante no QlikView, uma breve pesquisada no help do QlikView e logo encontrei um conjunto de funções que não só oferecem um recurso equivalente ao IN como estendem as funcionalidades de tal recurso.

A primeira função é a match(), esta é a mais próxima do IN em SQL, ela avalia o primeiro parâmetro que pode ser um campo ou uma variável, e retorna o índice das expressões listadas começando de 1 até N, caso o valor não seja encontrado nas expressões listadas o valor retornado será 0. É importante perceber que esta função é sensível a maiúsculas.

match( [Código Alternativo],A333,B555,C888)

No exemplo acima caso o código alternativo seja B555 o valor retornado pela função será 2, caso o valor para o código alternativo seja X100 ou c888 será retornado 0.

A função mixmatch se diferencia da função match unicamente por não ser sensível a maiúsculas.

mixmatch( [Código Alternativo],A333,B555,C888)

Analisando o exemplo acima onde o código alternativo seja a333 o valor retornado será 1.

A última função do conjunto é bastante interessante, oferece os mesmos recursos da mixmatch, pois também não é sensível a maiúsculas, e como recurso adicional permite a utilização de máscaras, inclusive em um campo “blob”, trabalhei muito tempo com banco de dados, e vez ou outra surgia à necessidade de pesquisar alguma coisa em um campo blob, e na maioria dos bancos de dados, não é possível utilizar um campo blob na clausula where. Uma breve pesquisada no Google a respeito de “pesquisas em campo blob” e muitas referências ao assunto serão retornadas.

Felizmente no QlikView podemos utilizar a função wildmatch(), que serve não só para campos com textos mais extensos como também para os demais campos, inclusive numéricos.

wildmatch([Observação],’NF0012*’,’PED55??1′)

No exemplo acima serão retornados registros cujo campo [Observação] contenha valores como:

“Requisição para a NF00128″

“Pedido PED55ty1 enviado ao setor de vendas”

Sendo assim podemos usá-la em clausulas where, funções condicionas como IF, e também para atribuir um valor a uma variável se for o caso, em conjunto com outras funções como a peek() por exemplo.

O uso desse conjunto de funções possibilita maior clareza no script, facilitando a manutenção e a compreensão das condições, então, bom proveito a todos.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s