wildmatch - skript- och diagramfunktion
Funktionen wildmatch jämför den första parametern med alla de följande och returnerar talet för det uttryck som matchar. Jokertecken ( * och ?) kan användas i jämförelsesträngarna. * motsvarar vilken teckensekvens som helst. ? motsvarar vilket enstaka tecken som helst. Jämförelsen är inte skiftlägeskänslig.
Syntax:
wildmatch( str, expr1 [ , expr2,...exprN ])
Om du vill använda en jämförelse utan jokertecken, ska du använda match eller mixmatch-funktionerna.
Vissa exempel i det här ämnet använder inline-laddningar. Inline-laddningar
Exempel: Laddningsskript som använder wildmatch
Laddningsskript
Du kan använda wildmatch för att ladda en delmängd av dina data. Du kan till exempel returnera ett numeriskt värde för ett uttryck i funktionen. Sedan kan du begränsa laddade data utifrån det numeriska värdet. Wildmatch returnerar 0 om det inte finns någon matchning. Alla uttryck som inte har någon matchning i det här exemplet returnerar därför 0 och WHERE-satsen utesluter dem från dataladdningen.
Skapa en ny flik i Skriptredigeraren och ladda sedan följande data som en inline load. Skapa tabellen nedan i Qlik Sense för att se resultatet.
Transactions: Load * Inline [ transaction_id, transaction_date, transaction_amount, transaction_quantity, customer_id, size, color_code 3750, 20180830, 23.56, 2, 2038593, L, Red 3751, 20180907, 556.31, 6, 203521, m, orange 3752, 20180916, 5.75, 1, 5646471, S, blue 3753, 20180922, 125.00, 7, 3036491, l, Black 3754, 20180922, 484.21, 13, 049681, xs, Red 3756, 20180922, 59.18, 2, 2038593, M, Blue 3757, 20180923, 177.42, 21, 203521, XL, Black ]; /* Create new table called Transaction_Buckets Create new fields called Customer, and Color code - Black, Blue, blue, red Load Transactions table. Wildmatch returns 1 for 'Black', 'Blue', and 'blue', and 2 for 'Red'. Only values that returned numeric value greater than 0 are loaded by WHERE statement into Transactions_Buckets table. */ Transaction_Buckets: Load customer_id, customer_id as [Customer], color_code as [Color Code Black, Blue, blue, Red] Resident Transactions Where wildmatch(color_code,'Bl*','R??') > 0;
Resultat
Color Code Black, Blue, blue, Red | Customer |
---|---|
Black | 203521 |
Black | 3036491 |
Blå | 2038593 |
blue | 5646471 |
Red | 049681 |
Red | 2038593 |
Exempel: Diagramuttryck som använder wildmatch
Diagramuttryck 1
Skapa en ny flik i Skriptredigeraren och ladda sedan följande data som en inline load. När data har laddats skapar du diagramuttrycksexemplen nedan i en Qlik Sense-tabell.
MyTable: Load * inline [Cities, Count Toronto, 123 Toronto, 234 Toronto, 231 Boston, 32 Boston, 23 Boston, 1341 Beijing, 234 Beijing, 45 Beijing, 235 Stockholm, 938 Stockholm, 39 Stockholm, 189 zurich, 2342 zurich, 9033 zurich, 0039];
Det första uttrycket i tabellen nedan returnerar 0 för Stockholm, eftersom 'Stockholm' inte finns med i listan med uttryck i wildmatch-funktionen. Det returnerar även 0 för 'Boston', eftersom ? bara utför matchningar på enstaka tecken.
Cities | wildmatch( Cities,'Tor*','?ton','Beijing','*urich') | wildmatch( Cities,'Tor*','???ton','Beijing','Stockholm','*urich') |
---|---|---|
Beijing |
3 |
3 |
Boston | 0 | 2 |
Stockholm | 0 | 4 |
Toronto | 1 | 1 |
zurich | 4 | 5 |
Diagramuttryck 2
Du kan använda wildmatch för att utföra en anpassad sortering för ett uttryck.
Som standard sorteras kolumner numeriskt eller alfabetiskt, beroende på datatyp.
Cities |
---|
Beijing |
Boston |
Stockholm |
Toronto |
zurich |
Gör så här om du vill ändra ordningen:
- Öppna delavsnittet Sortering för ditt diagram i egenskapspanelen.
- Inaktivera automatisk sortering för den kolumn du vill använda anpassad sortering för.
- Avmarkera Sortera numeriskt och Sortera alfabetiskt.
-
Välj Sortera efter uttryck och ange sedan ett uttryck som liknar följande:
=wildmatch( Cities, 'Tor*','???ton','Beijing','Stockholm','*urich')
Sorteringsordningen för kolumnen Cities ändras.
Cities |
---|
Toronto |
Boston |
Beijing |
Stockholm |
zurich |
Du kan även visa det numeriska värde som returneras.
Cities | Cities & ' - ' & wildmatch ( Cities, 'Tor*','???ton','Beijing','Stockholm','*urich') |
---|---|
Toronto | Toronto - 1 |
Boston | Boston - 2 |
Beijing | Beijing - 3 |
Stockholm | Stockholm - 4 |
zurich | zurich - 5 |