Expressions conditionnelles

Utilisez des expressions conditionnelles pour créer des expressions qui convertissent des valeurs.

Les expressions conditionnelles décrites dans cette section sont des blocs de création permettant de créer des expressions qui convertissent des valeurs d'un format en un autre.

Suivez les règles ci-dessous :

  • Dans les instructions CASE, AND prévaut sur OR.
  • Les chaînes doivent être entre apostrophes.
Expression Exemple Description Syntaxe

CASE (If)

CASE

WHEN score-par < 0 THEN 'Under Par'

WHEN score-par = 0 THEN 'Par'

WHEN score-par = 1 THEN 'Bogey'

WHEN score-par = 2 THEN 'Double Bogey'

ELSE 'Triple Bogey or Worse'

END

Evalue chaque condition WHEN et, si elle est satisfaite, affecte la valeur dans l'expression THEN correspondante.

Si aucune des conditions WHEN n'est remplie, la valeur par défaut de l'expression ELSE est affectée. En l'absence d'expression ELSE, le système ajoute automatiquement ELSE NULL.

Remarque : reportez-vous à Meilleures pratiques pour l'utilisation d'instructions CASE dans les analyses et les visualisations.

CASE WHEN request_condition1 THEN expr1 ELSE expr2 END

CASE (Switch)

CASE Score-par

WHEN -5 THEN 'Birdie on Par 6'

WHEN -4 THEN 'Must be Tiger'

WHEN -3 THEN 'Three under par'

WHEN -2 THEN 'Two under par'

WHEN -1 THEN 'Birdie'

WHEN 0 THEN 'Par'

WHEN 1 THEN 'Bogey'

WHEN 2 THEN 'Double Bogey'

ELSE 'Triple Bogey or Worse'

END

Egalement appelée CASE (Lookup). La valeur de la première expression est examinée, puis celles des expressions WHEN. Si la première expression correspond à une expression WHEN, la valeur est affectée à l'expression THEN correspondante.

Si aucune des expressions WHEN ne correspond, la valeur par défaut de l'expression ELSE est affectée. En l'absence d'expression ELSE, le système ajoute automatiquement ELSE NULL.

Si la première expression correspond à une expression présente dans plusieurs clauses WHEN, seule l'expression suivant la première correspondance est affectée.

Remarque : reportez-vous à Meilleures pratiques pour l'utilisation d'instructions 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 d'instructions CASE dans les analyses et les visualisations

Lors de l'utilisation d'instructions CASE dans les rapports et les classeurs, prenez en compte les colonnes de rapport et l'ordre d'agrégation, qui ont une incidence sur le calcul des expressions et des sous-totaux.

  • En général, lors de l'utilisation d'expressions CASE, assurez-vous que les colonnes utilisées dans l'expression sont incluses dans le rapport.

  • Si l'ordre d'agrégation est important, remplacez la règle d'agrégation de rapport Valeur 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'est pas affichée dans le rapport), utilisez la fonction FILTER.

Exemple

Cet exemple utilise des données pour Brand, Product Type et Revenue.
La description de GUID-5837A210-154F-4FAC-922D-EBF0A21C349A-default.png est la suivante
.png

Pour appliquer une condition afin de définir le chiffre d'affaires de Camera sur 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 l'évaluation de l'expression, qui contient Product_Type. Les résultats sont alors les suivants :
La description de GUID-22873F41-3679-45DF-821D-4167594FE069-default.png est la suivante
.png

L'ajout de PRODUCT_TYPE au rapport et la définition de l'agrégation de rapport sur SUM permet l'agrégation des résultats après le calcul des valeurs de base :
La description de GUID-0BEEE7E1-73CE-4BAA-98A2-683830E18E12-default.png est la suivante
.png

Une alternative à l'utilisation d'une instruction CASE consiste à 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 :
La description de GUID-F428B1A7-A9FF-425B-80F1-BB709769CE5C-default.png est la suivante
.png