Ir para conteúdo principal

Modificadores de conjunto

Um conjunto pode ser modificado por uma seleção adicional ou alterada. Uma modificação como essa pode ser escrita na expressão do conjunto.

O modificador é composto por um dos diversos nomes de campo, cada um seguido de uma seleção que deve ser feita no campo e estar entre < e >. Por exemplo: <Year={2007,+2008},Region={US}>. Os nomes e os valores de campo, normalmente, podem estar entre aspas, por exemplo<[Sales Region]={’West coast’, ’South America’}>.

Um modificador de conjunto se aplica à seleção do identificador de conjunto anterior. Caso nenhum identificador de conjunto seja informado como referência, o estado de seleção atual estará implícito.

Existem várias formas de definir a seleção, conforme descrito a seguir.

Baseado em outro campo

Um caso simples é uma seleção baseada nos valores selecionados de outro campo, por exemplo <OrderDate = DeliveryDate>. Esse modificador usará os valores selecionados de DeliveryDate e os aplicará como uma seleção em OrderDate. Se houver muitos valores diferentes – mais de duzentos – essa operação ocupará muito a CPU e deve ser evitada.

Baseado em conjuntos de elementos

O exemplo mais comum de uma expressão de conjunto é aquele que se baseia em uma lista de valores de campo entre chaves. Os valores são separados por vírgulas, por exemplo <Year = {2007, 2008}>. As chaves definem um conjunto de elementos, em que os elementos podem ser valores de campo explícitos ou pesquisas de valores de campo.

A menos que os valores listados contenham espaços em branco ou caracteres especiais, as aspas não são necessárias. Os valores listados serão simplesmente combinados com os valores de campo. Essa comparação não diferencia maiúsculas de minúsculas.

Se os valores listados contiverem espaços em branco ou caracteres especiais, ou se você quiser usar curingas, será necessário incluir os valores entre aspas. Aspas simples deverão ser usadas se os valores listados forem valores de campo explícitos. Em seguida, serão feitas correspondências sensíveis a maiúsculas e minúsculas entre os valores listados e os valores de campo individuais.

Aspas duplas devem ser usadas para pesquisas, ou seja, sequências de caracteres que contêm curingas ou que começam com um operador relacional ou um sinal de igual. Por exemplo, <Ingredient = {"*Garlic*"}> selecionará todos os ingredientes que contêm a sequência de caracteres ’Garlic’. Aspas duplas podem ser substituídas por colchetes, por exemplo, <Ingredient = {[*Garlic*]}>. Aspas duplas também podem ser substituídas por acentos graves, por exemplo, <Ingredient = {`*Garlic*`}>. Pesquisas não são sensíveis a maiúsculas e minúsculas.

Nota:

Em versões anteriores do QlikView, não havia distinção entre aspas simples e aspas duplas, e todas as sequências de caracteres entre aspas eram tratadas como pesquisas. Para manter a compatibilidade com versões anteriores, os documentos criados com versões anteriores do QlikView continuarão a funcionar como nas versões anteriores. Os documentos criados com o QlikView de novembro de 2017 ou versão posterior respeitarão a diferença entre os dois tipos de aspas.

Exclusão forçada

Por fim, para os campos no modo AND, também há a possibilidade de uma exclusão forçada. Se quiser forçar a exclusão de valores de campo específicos, você precisará usar “~” antes do nome do campo.

Examples and results:  

Resultados do exemplo
Exemplos Resultados
sum( {1<Region= {USA} >} Sales ) Retorna as vendas da região USA, desconsiderando a seleção atual.
sum( {$<Region = >} Sales ) Retorna as vendas da seleção atual, mas com a seleção em 'Region' removida.
sum( {<Region = >} Sales )

Retorna o mesmo como o exemplo imediatamente acima. Quando o conjunto para modificar for omitido, $ é adotado.

Nota: A sintaxe nos dois exemplos anteriores é interpretada como “nenhuma seleção” em in 'Region', ou seja, todas as regiões com outras seleções serão possíveis. Isso não é equivalente à sintaxe <Region = {}> (nem a qualquer outro texto à direita do sinal de igual implicitamente resultando em um conjunto de elementos vazio) que é interpretada como nenhuma região.
sum( {$<Year = {2000}, Region = {US, SE, DE, UK, FR}>} Sales ) retorna as vendas da seleção atual, mas com as novas seleções em 'Year' e em 'Region'.
sum( {$<~Ingredient = {“*garlic*”}>} Sales )

O campo Ingredient está no modo E.

Retorna as vendas da seleção atual, mas com uma exclusão forçada de todos os Ingredientes que contêm a palavra 'garlic'.

sum( {$<Year = {“2*”}>} Sales ) Retorna as vendas da seleção atual, mas com todos os anos que começam com o número "2", ou seja, do ano 2000 em diante, selecionados no campo 'Year'.
sum( {$<Year = {“2*”,”198*”}>} Sales ) Conforme a sintaxe acima, mas a década de 1980 também está incluída na seleção.
sum( {$<Year = {“>1978<2004”}>} Sales ) Retorna as vendas para as seleções atuais, mas com uma pesquisa numérica usada para definir o intervalo de anos dos quais as vendas serão somadas.
Nota:

Se quiser forçar a exclusão de valores de campos específicos em objetos, como objetos de texto, você terá que modificar a sintaxe do script. Por exemplo, se o comando do script for o seguinte:

=count({<ANDActor=>}DISTINCT Title)

Modifique-o desta forma:

=count({<~ANDActor=, ANDActor=>} DISTINCT Title)