Modificadores de conjunto

Un conjunto puede modificarse mediante una selección adicional o una selección modificada. Dicha modificación se puede escribir en la expresión de conjunto.

El modificador consta de uno o varios nombres de campo, cada uno de ellos seguido por una selección que debería efectuarse en el campo, todo ello enmarcado por signos de comillas angulares < >. Por ejemplo: <Year={2007,+2008},Region={US}>. Los nombres de campo y los valores de campo pueden registrarse de la forma habitual, por ejemplo, <[Sales Region]={’West coast’, ’South America’}>.

Un modificador de conjunto modifica la selección del identificador de conjunto precedente. Si no se especifica ningún identificador de conjunto se entiende como implícito el actual estado de las selecciones.

Hay varias formas de describir la selección, tal como se define a continuación.

Basada en otro campo

Una forma simple sería realizar una selección basada en los valores seleccionados de otro campo, por ej. <OrderDate = DeliveryDate> Este modificador tomará los valores seleccionados de DeliveryDate y los aplicará como selección a OrderDate. Si hay muchos valores distintos, varios cientos, entonces esta operación consume mucha CPU y debería evitarse.

Basada en conjuntos de elementos

El ejemplo más común de una expresión de conjunto es aquella que se basa en una lista de valores de campo incluidos entre llaves. Los valores van separados por comas, por ejemplo <Year = {2007, 2008}>. Las llaves definen un conjunto de elementos, donde los elementos pueden ser valores de campo explícitos o búsquedas de valores de campo.

A menos que los valores enumerados contengan espacios en blanco o caracteres especiales, las comillas no son necesarias. Los valores enumerados simplemente se contrastarán con los valores de campo. Esta comparación no es sensible a mayúsculas.

Si los valores enumerados contienen espacios en blanco o caracteres especiales, o si desea utilizar comodines, debe incluir los valores entre comillas. Se deben usar comillas simples si los valores enumerados son valores de campo explícitos. Luego se harán correspondencias sensibles a mayúsculas y minúsculas entre los valores enumerados y los valores de campo individuales.

Se deben usar comillas dobles para las búsquedas, es decir, cadenas que contengan caracteres comodín o comiencen con un operador relacional o un signo igual. Por ejemplo, <Ingredient = {"*Garlic*"}> seleccionará todos los ingredientes que contienen la cadena ’Garlic’. Las comillas dobles se pueden sustituir por paréntesis, por ejemplo, <Ingredient = {[*Garlic*]}>. Las comillas dobles también se pueden sustituir por acentos graves, por ejemplo <Ingredient = {`*Garlic*`}>. Las búsquedas no son sensibles a mayúsculas.

Nota:

En versiones anteriores de QlikView, no había distinción entre comillas simples y comillas dobles y todas las cadenas entre comillas se trataban como búsquedas. Para mantener la compatibilidad con versiones anteriores, los documentos creados con versiones anteriores de QlikView continuarán funcionando como lo hicieron en las versiones previas. Los documentos creados con QlikView de noviembre 2017 o posterior respetarán la diferencia entre los dos tipos de comillas.

Exclusión forzada

Finalmente, para campos en modo and, hay también la posibilidad de una exclusión forzada. Si desea forzar la exclusión de valores específicos de campo, necesitará emplear "~" frente al nombre de campo.

Examples and results:  

Ejemplos Resultados
sum( {1<Region= {USA} >} Sales ) devuelve las ventas en la región USA, descartando la selección actual.
sum( {$<Region = >} Sales ) Devuelve las ventas de la selección actual, pero eliminando la selección de "Region".
sum( {<Region = >} Sales )

Devuelve lo mismo que el ejemplo inmediatamente anterior. Cuando se omite el modificador de conjuntos, se presupone $.

Nota: La sintaxis de los dos ejemplos anteriores se interpreta como "cero selecciones" en "Region", esto es, todas las regiones incluidas en otras selecciones serán posibles. No es equivalente a la sintaxis <Region = {}> (ni a ningún otro texto a la derecha del signo igual, devolviendo implícitamente un conjunto de elementos vacío), lo cual se interpreta como sin región.
sum( {$<Year = {2000}, Region = {US, SE, DE, UK, FR}>} Sales ) Devuelve las ventas de la selección actual, pero con nuevas selecciones tanto en "Year" como en "Region".
sum( {$<~Ingredient = {“*garlic*”}>} Sales )

El campo Ingredient está en modo AND.

Devuelve las ventas de la selección actual, pero con una exclusión forzada de todos los ingredientes que contengan la cadena "garlic".

sum( {$<Year = {“2*”}>} Sales ) Devuelve las ventas de la selección actual, pero con todos los años que empiecen por el dígito 2, es decir, del 2000 en adelante, seleccionados en el campo "Year".
sum( {$<Year = {“2*”,”198*”}>} Sales ) Igual que el anterior, pero ahora la década de los 80 se incluye en la selección.
sum( {$<Year = {“>1978<2004”}>} Sales ) Devuelve las ventas de las selecciones actuales, pero con una búsqueda numérica que se utiliza para limitar el rango de años en los que sumar las ventas.