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.
Tags: QlikView