match - fonction de script et fonction de graphique
La fonction match compare le premier paramètre à tous les paramètres suivants et renvoie l'emplacement numérique des expressions qui correspondent. La comparaison est sensible à la casse des caractères.
Syntax:
match( 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 match. Elle renvoie également 0 pour « Zurich », car la comparaison match respecte la casse des caractères.
Cities | match( Cities,'Toronto','Boston','Beijing','Zurich') | match( Cities,'Toronto','Boston','Beijing','Stockholm','zurich') |
---|---|---|
Beijing |
3 |
3 |
Boston | 2 | 2 |
Stockholm | 0 | 4 |
Toronto | 1 | 1 |
zurich | 0 | 5 |
La fonction match 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 :
=match( Cities, 'Toronto','Boston','Beijing','Stockholm','zurich')
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 & ' - ' & match ( Cities, 'Toronto','Boston', 'Beijing','Stockholm','zurich') |
---|---|
Toronto | Toronto - 1 |
Boston | Boston - 2 |
Beijing | Beijing - 3 |
Stockholm | Stockholm - 4 |
zurich | zurich - 5 |
Script de chargement
La fonction match 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. Match 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 - Blue and Black
Load Transactions table.
Match returns 1 for 'Blue', 2 for 'Black'.
Does not return a value for 'blue' because match is case sensitive.
Only values that returned numeric value greater than 0
are loaded by WHERE statment into Transactions_Buckets table.
*/
Transaction_Buckets:
Load
customer_id,
customer_id as [Customer],
color_code as [Color Code Blue and Black]
Resident Transactions
Where match(color_code,'Blue','Black') > 0;
Résultats
Color Code Blue and Black | Customer |
---|---|
Black | 203521 |
Black | 3036491 |
Blue | 2038593 |