wildmatch - script- en diagramfunctie
Met de functie wildmatch vergelijkt u de eerste parameter met alle volgende parameters en krijgt u het aantal overeenkomende uitdrukkingen als resultaat. Bij deze functie kunt u jokertekens ( * en ?) gebruiken in de tekenreeksen die worden vergeleken. * komt overeen met een willekeurige reeks tekens. ? komt overeen met een willekeurig enkel teken. De vergelijking is niet hoofdlettergevoelig.
Syntax:
wildmatch( str, expr1 [ , expr2,...exprN ])
De eerste uitdrukking in de onderstaande tabel geeft 0 als resultaat voor Stockholm, aangezien 'Stockholm' niet is opgenomen in de lijst met uitdrukkingen in de functie wildmatch. Het geeft ook 0 als resultaat voor 'Boston', omdat ? alleen overeenkomt met een enkel teken.
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 |
U kunt wildmatch gebruiken om een uitdrukking op aangepaste wijze te sorteren.
Kolommen worden standaard numeriek of alfabetisch gesorteerd, afhankelijk van de gegevens.
Cities |
---|
Beijing |
Boston |
Stockholm |
Toronto |
zurich |
U kunt de volgorde als volgt veranderen:
- Open de sectie Sorteren in het eigenschappenvenster.
- Schakel automatisch sorteren uit voor de kolom die u aangepast wilt sorteren.
- Hef de selecties Numeriek sorteren en Alfabetisch sorteren op.
-
Selecteer Sorteren op uitdrukking en voer een uitdrukking in die hierop lijkt:
=wildmatch( Cities, 'Tor*','???ton','Beijing','Stockholm','*urich')
De sorteervolgorde van de kolom Cities wordt gewijzigd.
Cities |
---|
Toronto |
Boston |
Beijing |
Stockholm |
zurich |
U kunt ook de numerieke waarde bekijken die is geretourneerd.
Cities | Cities & ' - ' & wildmatch ( Cities, 'Tor*','???ton','Beijing','Stockholm','*urich') |
---|---|
Toronto | Toronto - 1 |
Boston | Boston - 2 |
Beijing | Beijing - 3 |
Stockholm | Stockholm - 4 |
zurich | zurich - 5 |
Load-script
U kunt wildmatch gebruiken om een gegevens-subset te laden. U kunt bijvoorbeeld een numerieke waarde als resultaat krijgen voor een uitdrukking in de functie. Vervolgens kunt u de geladen gegevens beperken op basis van de numerieke waarde. Wildmatch geeft 0 als resultaat als er geen overeenkomst is. Alle uitdrukkingen zonder overeenkomst hebben in dit voorbeeld daarom 0 als resultaat en worden uitgesloten van de gegevens die zijn geladen door de WHERE-instructie.
Maak een nieuwe sectie in de Editor voor laden van gegevens aan met de naam Load en voeg het volgende toe:
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', 2 for 'Blue', 3 for 'blue', 4 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;
Resultaten
Color Code Black, Blue, blue, Red | Customer |
---|---|
Black | 203521 |
Black | 3036491 |
Blue | 2038593 |
blue | 5646471 |
Red | 049681 |
Red | 2038593 |