Expressions conditionnelles

Vous pouvez utiliser des expressions conditionnelles pour créer des expressions qui convertissent des valeurs.

Les expressions conditionnelles décrites dans cette section sont les éléments de base pour la création d'expressions qui convertissent une valeur en une autre valeur.

Respectez les règles suivantes :

  • Dans les énoncés CASE, AND a préséance sur OR.
  • Les chaînes de caractères doivent être encadrées par des guillemets simples.
Expression Exemple Description Syntaxe

CASE (If)

CASE

WHEN score-par < 0 THEN 'Sous la normale'

WHEN score-par = 0 THEN 'Normale'

WHEN score-par = 1 THEN 'Boguey'

WHEN score-par = 2 THEN 'Double boguey'

ELSE 'Triple boguey ou pire'

END

Évalue chaque condition WHEN et, si elle est satisfaite, affecte la valeur de l'expression THEN correspondante.

Si aucune des conditions WHEN n'est satisfaite, affecte la valeur par défaut indiquée dans l'expression ELSE. Si aucune expression ELSE n'est indiquée, le système ajoute automatiquement l'expression ELSE NULL.

Note : Voir Meilleures pratiques pour l'utilisation des énoncés CASE dans les analyses et les visualisations.

CASE WHEN request_condition1 THEN expr1 ELSE expr2 END

CASE (Switch)

CASE Score-par

WHEN -5 THEN 'Oiselet sur normale 6'

WHEN -4 THEN 'Ce doit être Tiger'

WHEN -3 THEN 'Trois coups sous la normale'

WHEN -2 THEN 'Deux coups sous la normale'

WHEN -1 THEN 'Oiselet'

WHEN 0 THEN 'Normale'

WHEN 1 THEN 'Boguey'

WHEN 2 THEN 'Double boguey'

ELSE 'Triple boguey ou pire'

END

Aussi appelé énoncé CASE (Lookup). La valeur de la première expression est examinée, suivie des expressions WHEN. Si la première expression correspond à l'une des expressions WHEN, affecte la valeur de l'expression THEN correspondante.

Si aucune des expressions WHEN ne correspond, affecte la valeur par défaut indiquée dans l'expression ELSE. Si aucune expression ELSE n'est indiquée, le système ajoute automatiquement l'expression ELSE NULL.

Si la première expression correspond à l'une des expressions de clauses WHEN multiples, seule l'expression qui suit la première correspondance est affectée.

Note Voir Meilleures pratiques pour l'utilisation des énoncés CASE dans les analyses et les visualisations.

CASE expr1 WHEN expr2 THEN expr3 ELSE expr4 END

IfCase > ELSE

-

-

ELSE [expr]

IfCase > IFNULL

-

-

IFNULL([expr], [value])

IfCase > NULLIF

-

-

NULLIF([expr], [expr])

IfCase > WHEN

-

-

WHEN [Condition] THEN [expr]

IfCase > CASE

-

-

CASE WHEN [Condition] THEN [expr] END

SwitchCase > ELSE

-

-

ELSE [expr]

SwitchCase >IFNULL

-

-

IFNULL([expr], [value])

SwitchCase > NULLIF

-

-

NULLIF([expr], [expr])

SwitchCase > WHEN

-

-

WHEN [Condition] THEN [expr]

Meilleures pratiques pour l'utilisation des énoncés CASE dans les analyses et les visualisations

Lorsque vous utilisez des énoncés CASE dans des rapports et des classeurs, prenez en considération les colonnes du rapport et l'ordre d'agrégation, car ils ont une incidence sur le mode de calcul des expressions et des sous-totaux.

  • En règle générale, lorsque vous utilisez des expressions CASE, assurez-vous que les colonnes figurant dans l'expression sont incluses dans le rapport.

  • Si l'ordre d'agrégation est important, remplacez la règle d'agrégation Par défaut par Somme.
  • Si une condition doit être évaluée avant le calcul de l'agrégation (par exemple, si la colonne filtrée n'apparaît pas dans le rapport), utilisez la fonction FILTER.

Exemple

Cet exemple utilise des données pour Brand (Marque), Product Type (Type de produit) et Revenue (Revenus).
Description de GUID-5837A210-154F-4FAC-922D-EBF0A21C349A-default.png ci-après
.png

Pour appliquer une condition réglant les revenus Camera (Appareil photo) à 0, créez l'expression conditionnelle suivante : CASE WHEN Product_Type = ‘Camera’ THEN 0 ELSE Revenue END.

Lorsque Product_Type est exclu du rapport, les données ne sont pas disponibles pour évaluer l'expression car elle contient Product_Type, et les résultats sont les suivants :
Description de GUID-22873F41-3679-45DF-821D-4167594FE069-default.png ci-après
.png

Lorsque vous ajoutez PRODUCT_TYPE au rapport et réglez l'agrégation de rapport à SUM, le résultat est agrégé après le calcul des valeurs de niveau de base ::
Description de GUID-0BEEE7E1-73CE-4BAA-98A2-683830E18E12-default.png ci-après
.png

Au lieu de CASE, vous pouvez utiliser une expression de filtre : FILTER(Revenue using Product_Type != ‘Camera’). L'expression est calculée indépendamment des colonnes de rapport et les agrégations sont appliquées après le calcul :
Description de GUID-F428B1A7-A9FF-425B-80F1-BB709769CE5C-default.png ci-après
.png