Fonctions logiques
La liste ci-dessous répertorie les fonctions logiques utilisables dans des expressions.
Fonction | Description |
---|---|
Case | L'instruction de cas (case) se présente sous deux formes différentes. Simple :
L'expression Recherchée :
Renvoie expressions when ou then peuvent être saisies et sont évaluées de gauche à droite. Plus d'informations sont disponibles ci-dessous. Exemple :
pour plus d'exemples, voir ci-dessous et la rubrique Colonnes calculées basées sur des conditions. |
If(Arg1,Arg2,Arg3)
| RenvoieArg2 siArg1 =true etArg3 siArg1 =false.Arg1 est de type booléen et, en général, est le résultat d'une comparaison.Arg2 et Arg3 peuvent être de n'importe quel type, mais tous deux doivent être du même type ou de type Null.Les deuxième et troisième arguments traitent uniquement les sous-ensembles des lignes, ce qui a un impact sur les méthodes d'accumulation et basées sur les colonnes.Plus d'informations sont disponibles ci-dessous. Exemples :
pour plus d'exemples, voir ci-dessous et la rubrique Colonnes calculées basées sur des conditions. |
Is Not Null
| Utilisé dans une instruction If ou Case pour déterminer si une expression génère ou non une valeur vide (valeur null).Exemple :
si une expression comprend des valeurs vides ou manquantes (valeurs Null), vous pouvez utiliser la fonction |
Is Null
| Utilisé dans une instruction Exemple :
si une expression comprend des valeurs vides ou manquantes (valeurs Null), vous pouvez utiliser la fonction |
Informations supplémentaires sur l'utilisation de « if » dans les expressions :
Lorsque vous utilisez une instruction If dans une expression, la condition du premier argument limite les valeurs à évaluer dans le troisième argument.Prenons l'exemple suivant avec une colonne contenant des entiers :
Col1 |
1 |
2 |
3 |
Si l'on insère une colonne calculée à l'aide de l'expression suivante :
if(Col1 < 2,
Max(Col1), Max(Col1))
Une nouvelle colonne avec deux valeurs différentes est générée ; l'une affichant la valeur max. de toutes les valeurs inférieures à 2 et l'autre affichant la valeur max. pour les autres valeurs (correspondant aussi à la valeur max. de l'ensemble de la colonne) :
Col1 | if(Col1 < 2, Max(Col1), Max(Col1))
|
1 | 1 |
2 | 3 |
3 | 3 |
Le rôle de la fonction If
est de diviser la colonne en deux groupes, puis de continuer l'évaluation de l'expression avec les nouveaux groupes.
Si vous utilisez l'expression Percentile
à la place, la manière dont la première condition divise la colonne aura un impact sur les résultats obtenus :
Col2 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
Si l'on insère deux colonnes à l'aide des deux expressions suivantes :
if (Col2 < 4, 0,
Percentile(Col2, 70))
if (Col2 < 6, 0,
Percentile(Col2, 70))
Le résultat obtenu est le suivant :
Col2 | if (Col2 < 4, 0,
Percentile(Col2, 70))
| if (Col2 < 6,
0, Percentile(Col2, 70))
|
1 | 0 | 0 |
2 | 0 | 0 |
3 | 0 | 0 |
4 | 8,2 | 0 |
5 | 8,2 | 0 |
6 | 8,2 | 8,8 |
7 | 8,2 | 8,8 |
8 | 8,2 | 8,8 |
9 | 8,2 | 8,8 |
10 | 8,2 | 8,8 |
If
a regroupé les données.Informations supplémentaires sur l'utilisation des expressions CASE :
Si vous utilisez des expressions Case, la condition qui suit « when
» est calculée pour l'ensemble de la colonne.L'argument qui suit « then
» est calculé pour les lignes définies par la condition « when
».Si l'expression contient plusieurs paires « when- then
», l'une des conditions « then
» est limitée par toutes les précédentes conditions ainsi que par la dernière.
Exemple avec une colonne d'entiers :
Col1 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
Si l'on insère deux colonnes calculées, appelées Case Min et Case Max, à l'aide des expressions suivantes :
Case Min :
case
when [Col1]<Avg([Col1]) then Min([Col1])
when [Col1]<(Avg([Col1]) + 1) then Min([Col1])
else Min([Col1])
end
Case Max :
case
when [Col1] < Avg([Col1]) then Max([Col1])
when [Col1] < (Avg([Col1]) + 1) then Max([Col1])
else Max([Col1])
end
Le résultat sera le suivant :
Col1 | Case Min | Case Max |
1 | 1 | 4 |
2 | 1 | 4 |
3 | 1 | 4 |
4 | 1 | 4 |
5 | 5 | 5 |
6 | 6 | 8 |
7 | 6 | 8 |
8 | 6 | 8 |