wildmatch - fonction de script et fonction de graphique
La fonction wildmatch compare le premier paramètre à tous les paramètres suivants et renvoie le numéro de l'expression qui correspond. Elle permet d'utiliser des caractères génériques ( * et ?) dans les chaînes de comparaison. * correspond à n'importe quelle séquence de caractères. ? correspond à n'importe quel caractère unique. La comparaison n'est pas sensible à la casse des caractères.
Syntax:
wildmatch( str, expr1 [ , expr2,...exprN ])
La première expression de la table ci-dessous renvoie 0 pour Stockholm, car « Stockholm » ne figure pas dans la liste d'expressions de la fonction wildmatch. Elle renvoie également 0 pour « Boston », car ? correspond uniquement à un caractère unique.
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 |
La fonction wildmatch vous permet de définir un tri personnalisé pour une expression.
Par défaut, les colonnes sont triées par nombre ou par ordre alphabétique, selon les données.
Cities |
---|
Beijing |
Boston |
Stockholm |
Toronto |
zurich |
Pour modifier l'ordre, procédez comme suit :
- Ouvrez la section Tri relative au graphique dans le panneau des propriétés.
- Désactivez le tri automatique défini pour la colonne à laquelle vous souhaitez appliquer un tri personnalisé.
- Désélectionnez Trier par nombre et Trier par ordre alphabétique.
-
Sélectionnez Trier par expression, puis saisissez une expression semblable à la suivante :
=wildmatch( Cities, 'Tor*','???ton','Beijing','Stockholm','*urich')
L'ordre de tri appliqué à la colonne Cities est modifié en conséquence.
Cities |
---|
Toronto |
Boston |
Beijing |
Stockholm |
zurich |
Vous pouvez également afficher la valeur numérique renvoyée.
Cities | Cities & ' - ' & wildmatch ( Cities, 'Tor*','???ton','Beijing','Stockholm','*urich') |
---|---|
Toronto | Toronto - 1 |
Boston | Boston - 2 |
Beijing | Beijing - 3 |
Stockholm | Stockholm - 4 |
zurich | zurich - 5 |
Script de chargement
La fonction wildmatch permet de charger un sous-ensemble de données. Par exemple, vous pouvez renvoyer une valeur numérique pour une expression dans la fonction. Vous pouvez ensuite limiter les données chargées d'après la valeur numérique. Wildmatch renvoie 0 en l'absence de correspondance. Dans cet exemple, toutes les expressions sans correspondance renverront donc 0 et seront exclues du chargement de données par l'instruction WHERE.
Dans l'éditeur de chargement de données, créez une section intitulée Load, puis ajoutez ce qui suit :
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;
Résultats
Color Code Black, Blue, blue, Red | Customer |
---|---|
Black | 203521 |
Black | 3036491 |
Blue | 2038593 |
Blue | 5646471 |
Red | 049681 |
Red | 2038593 |