Gå till huvudinnehåll Gå till ytterligare innehåll

Set-modifierare

Ett set kan modifieras genom att ett val läggs till eller ändras. En sådan ändring kan skrivas in i set-uttrycket.

Modifieraren består av ett eller flera fältnamn, som vart och ett följs av ett val som ska göras på just det fältet. De omsluts alla av < och >. Exempelvis: <Year={2007,+2008},Region={US}>. Fältnamn och fältvärden kan få citattecken som vanligt, exempelvis: <[Sales Region]={’West coast’, ’South America’}>.

En set-modifierare förändrar urvalet av föregående set-identifierare. Om det inte finns någon hänvisning till en set-identifierare är det aktuella urvalstillståndet implicit.

Det finns olika sätt att ange urvalet, vilket beskrivs nedan.

Baserat på ett annat fält

Ett enkelt fall är ett urval baserat på de valda värdena i ett annat fält, exempelvis <OrderDate = DeliveryDate>. Denna modifierare tar de valda värdena från DeliveryDate och applicerar dem som ett val på OrderDate. Om det finns många distinkta värden, fler än några hundra, blir denna åtgärd processorkrävande och bör därför undvikas.

Baserat på elementuppsättningar

Det vanligaste exemplet på ett set-uttryck är ett uttryck som baseras på en lista med fältvärden som omsluts av klammerparenteser. Värdena avgränsas med kommatecken, till exempel <Year = {2007, 2008}>. Klammerparenteserna definierar en uppsättning element (ett set), där elementen kan vara explicita fältvärden eller sökningar i fältvärden.

Citattecken behövs bara användas om värdena i listan innehåller blanksteg eller specialtecken. Värdena i listan matchas helt enkelt med fältvärdena. Den här jämförelsen är inte skiftlägeskänslig.

Om angivna värden innehåller blanksteg eller specialtecken, eller om du vill använda jokertecken, måste du omsluta värdena med citattecken. Enkla citattecken ska användas om värdena i listan är explicita fältvärden. Då görs skiftlägeskänsliga matchningar mellan värdena i listan och de enskilda fältvärdena.

Dubbla citattecken ska användas vid sökningar, d.v.s. strängar som innehåller jokertecken eller inleds med en relationsoperator eller ett likhetstecken. Uttrycket <Ingredient = {"*Garlic*"}> väljer till exempel alla ingredienser som innehåller strängen 'Garlic'. Dubbla citattecken kan ersättas med hakparenteser, till exempel <Ingredient = {[*Garlic*]}>. Dubbla citattecken kan även ersättas med akuta accenter, till exempel <Ingredient = {`*Garlic*`}>. Sökningar är inte skiftlägeskänsliga.

Anteckning om information

I tidigare versioner av QlikView gjordes ingen skillnad mellan enkla och dubbla citattecken, och alla strängar inom citattecken behandlades som sökningar. För att säkerställa bakåtkompatibiliteten kommer de dokument som har skapats med äldre versioner av QlikView att fortsätta att fungera på samma sätt som tidigare. Dokument som har skapats med QlikView November 2017 eller senare versioner kommer att göra skillnad mellan enkla och dubbla citattecken.

Tvingande bortval

För fälten i och-läge, slutligen, finns även möjligheten att göra tvingade bortval. Om man vill forcera bortval av specifika fältvärden måste man använda ”~” framför fältnamnet.

Exempel och resultat:  

Resultat för exempel
Exempel Resultat
sum( {1<Region= {USA} >} Sales ) Returnerar försäljningen för regionen USA och ignorerar det aktuella valet.
sum( {$<Region = >} Sales ) Returnerar försäljningen för det aktuella valet, men valet i 'Region' har tagits bort.
sum( {<Region = >} Sales )

Returnerar samma resultat som exemplet strax ovanför. När det set som ska modifieras är utelämnat antas $.

Anteckning om informationSyntaxen i de två tidigare exemplen tolkas som ”inga val” i ”Region”, dvs alla regioner som getts andra val är möjliga. Detta motsvarar inte syntaxen <Region = {}> (eller vilken annan text som helst till höger om likhetstecknet som implicit resulterar i ett tomt element-set) som tolkas som ingen region.
sum( {$<Year = {2000}, Region = {US, SE, DE, UK, FR}>} Sales ) Returnerar försäljningen för det aktuella valet, men med nya val både i "Year" och "Region".
sum( {$<~Ingredient = {“*garlic*”}>} Sales )

Fältet Ingredient är i AND-läge.

Returnerar försäljningen för det aktuella urvalet, men med tvingande bortval av alla ingredienser som innehåller strängen ”garlic”.

sum( {$<Year = {“2*”}>} Sales ) Returnerar försäljningen för det aktuella valet, men med alla år som inleds med siffran "2", d.v.s. mest sannolikt år 2000 och framåt, som är valda i fältet "Year".
sum( {$<Year = {“2*”,”198*”}>} Sales ) Enligt ovan, men nu inkluderas 1980-talet i urvalet.
sum( {$<Year = {“>1978<2004”}>} Sales ) Returnerar försäljningen för de aktuella urvalen, men en numerisk sökning används för att ange det årsintervall som försäljningen ska summeras för.
Anteckning om information

Om du vill tvinga att specifika fältvärden utesluts från objekt som textobjekt måste du ändra skriptets syntax. Om du till exempel har den här satsen i ditt skript:

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

Gör du den här ändringen:

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

Var den här sidan till hjälp för dig?

Om du hittar några fel på denna sida eller i innehållet – ett stavfel, ett steg som saknas eller ett tekniskt fel – berätta för oss så att vi kan blir bättre!

Gå med i programmet Analytics Modernization

Remove banner from view

Modernisera utan att kompromissa med dina värdefulla QlikView-appar med programmet för analysmodernisering. Klicka här för mer information eller ta kontakt: ampquestions@qlik.com