Modyfikatory zestawów
Aby zmodyfikować zestaw, należy dodać do niego selekcję lub zmienić istniejącą selekcję. Taką modyfikację można zapisać w wyrażeniu zestawu.
Modyfikator składa się z dowolnej liczby nazw pól, a po każdej nazwie podana jest selekcja dokonywana w danym polu. Całość jest ujęta w ostre nawiasy: < i >. Na przykład: <Year={2007,2008},Region={US}>. Nazwy i wartości pól mogą być w zwykły sposób umieszczane w cudzysłowach, na przykład <[Sales Region]={'West coast', 'South America'}>.
Modyfikator zestawu modyfikuje selekcję poprzedniego identyfikatora zestawu. Jeśli brak jest odniesienia do identyfikatora zestawu, uznaje się za taki bieżący stan selekcji.
Wybór można zdefiniować na kilka sposobów:
- Na podstawie innego pola
- Na podstawie zestawów elementów (listy wartości pól w modyfikatorze)
- Wykluczenie wymuszone
Metody te są opisane w poniższych częściach.
Na podstawie innego pola
Prostym zastosowaniem jest dokonanie selekcji na podstawie wartości wybranych w innym polu, na przykład <OrderDate = DeliveryDate>. Taki modyfikator spowoduje pobranie wybranych wartości z pola DeliveryDate i zastosowanie ich jako selekcji w polu OrderDate. Jeśli odrębnych wartości jest wiele (więcej niż kilkaset), taka operacja bardzo obciąża procesor i nie jest zalecana.
Na podstawie zestawów elementów
Najbardziej typowym przykładem wyrażenia zestawu jest wyrażenie oparte na liście wartości pól ujętych w nawiasy klamrowe. Wartości są rozdzielane przecinkami — na przykład <Year = {2007, 2008}>. Nawiasy klamrowe definiują zestaw elementów, którymi mogą być jawne wartości pól albo wyszukiwania wartości pól.
Jeśli wartości z listy nie zawierają spacji ani znaków specjalnych, cudzysłowy nie są potrzebne. Wartości z listy zostaną po prostu dopasowane do wartości pola. Wielkość liter w porównaniu nie ma znaczenia.
Jeśli wartości z listy zawierają spacje lub znaki specjalne, lub jeśli wymagane jest używanie znaków wieloznacznych, wówczas takie wartości należy ująć w znaki cudzysłowu. Jeśli wartości z listy są jawnymi wartościami pola, należy użyć pojedynczych cudzysłowów. W takim przypadku zostaną dokonane dopasowania (z rozróżnianiem wielkości liter) między wartościami z listy, a wartościami poszczególnych pól.
W przypadku wyszukiwań, tj. ciągów zawierających znaki wieloznaczne lub zaczynających się od operatora relacyjnego lub znaku równości, należy używać cudzysłowów podwójnych. Na przykład <Ingredient = {"*Garlic*"}> spowoduje wybranie wszystkich składników, które zawierają ciąg „Garlic”. Cudzysłowy podwójne można zastąpić nawiasami — na przykład <Ingredient = {[*Garlic*]}>. Cudzysłowy podwójne można zastąpić znakami akcentu grawis — na przykład <Ingredient = {`*Garlic*`}>. W wyszukiwaniach wielkość liter nie jest rozróżniana.
W poprzednich wersjach Qlik Sense cudzysłowy pojedyncze nie były odróżniane od podwójnych i wszystkie ciągi w cudzysłowach były traktowane jak wyszukiwania. W celu zachowania zgodności z poprzednimi wersjami aplikacje utworzone w starszych wersjach Qlik Sense nadal będą działać tak samo, jak w poprzednich wersjach. Aplikacje utworzone w wersji Qlik Sense November 2017 lub w nowszych wersjach uwzględniają różnice między tymi dwoma typami cudzysłowów.
Wykluczenie wymuszone
W przypadku pól w trybie AND można korzystać z wykluczenia wymuszonego. Aby wymusić wykluczenie wartości wybranych pól, należy podać znak „~” przed nazwą pola.
Examples and results:
Przykłady | Wyniki |
---|---|
sum( {1<Region= {USA} >} Sales ) | Zwraca wartość sprzedaży dla regionu USA, , ignorując bieżącą selekcję. |
sum( {$<Region = >} Sales ) | Zwraca wartość sprzedaży dla bieżącej selekcji, ale usuwa selekcję w wymiarze Region. |
sum( {<Region = >} Sales ) |
Zwraca tę samą wartość co w przykładzie podanym bezpośrednio powyżej. Jeśli modyfikowany zestaw zostanie pominięty, zakładany jest parametr $. InformacjaSkładnia w dwóch poprzednich przykładach zostanie zinterpretowana jako „brak selekcji” w wymiarze Region, czyli możliwe będą wszystkie regiony z innymi selekcjami. Nie jest to odpowiednik składni <Region = {}> (lub umieszczenia po prawej stronie znaku równości innego tekstu niejawnie powodującego zwrócenie pustego zestawu elementów), która jest interpretowana jako „brak regionu”.
|
sum( {$<Year = {2000}, Region = {US, SE, DE, UK, FR}>} Sales ) | Zwraca wartość sprzedaży dla bieżącej selekcji, ale z nowymi selekcjami w wymiarach Year i Region. |
sum( {$<~Ingredient = {“*garlic*”}>} Sales ) |
Pole Ingredient znajduje się w trybie AND. Zwraca wartość sprzedaży dla bieżącej selekcji, ale z wykluczeniem wymuszonym wszystkich składników zawierających ciąg znaków garlic. |
sum( {$<Year = {“2*”}>} Sales ) | Zwraca wartość sprzedaży dla bieżącej selekcji, ale z wybranymi w polu Year wszystkimi latami zaczynającymi się od cyfry 2 (czyli zazwyczaj od roku 2000). |
sum( {$<Year = {“2*”,”198*”}>} Sales ) | Podobnie jak powyżej, ale teraz w selekcji uwzględnione są również lata 80. XX wieku. |
sum( {$<Year = {“>1978<2004”}>} Sales ) | Zwraca wartość sprzedaży dla bieżącego wyboru, ale z wyszukiwaniem liczbowym służącym do określenia zakresu lat w celu zsumowania tamtejszej sprzedaży. |