CASE
Description
CASE
est une fonction de ligne qui évalue chaque ligne du jeu de données par rapport à une ou plusieurs conditions d'entrée et produit le résultat spécifié en sortie lorsque les conditions d'entrée sont satisfaites.Syntaxe
CASE
WHEN
input_condition
[AND
|OR
input_condition
]THEN
output_expression
[...] [ELSE
other_output_expression
] END
Valeur de renvoi
Renvoie une valeur par ligne du même type que l'expression de sortie. Toutes les expressions de sortie doivent renvoyer le même type de champ.
S'il existe plusieurs expressions de sortie qui renvoient des types de champ différents, vous devrez inclure l'intégralité de votre
CASE
expression dans l'une des fonctions de conversion de type champ, telles que TO_INT
, pour convertir explicitement toutes les valeurs de sortie dans un type de champ particulier.Paramètres d'entrée
- WHENinput_condition
- Est obligatoire. LeWHENLe mot-clé est utilisé pour spécifier une ou plusieurs expressions booléennes (voir les opérateurs conditionnels pris en charge). Si une valeur d'entrée satisfait à la condition, alors l'expression de sortie est appliquée. Les conditions d'entrée peuvent inclure d'autres fonctions de ligne dans leur expression, mais ne peuvent pas contenir de fonctions de synthèse ou de mesure. Vous pouvez utiliser laANDouORdes mots-clés pour combiner plusieurs conditions d'entrée.
- Affichel'expression de sortie
- Est obligatoire. LeTHENLe mot-clé est utilisé pour spécifier une expression de sortie lorsque les conditions spécifiées sont remplies. Les expressions de sortie peuvent inclure d'autres fonctions de ligne dans leur expression, mais ne peuvent pas contenir de fonctions de synthèse ou de mesure.
- AfficherAutre_output_expression
- Facultatif. LeELSELe mot-clé peut être utilisé pour spécifier une autre expression de sortie à utiliser lorsque les conditions spécifiées ne sont pas remplies. SiELSEl'expression n'est pas fournie,ELSE NULLest la valeur par défaut.
- END
- Est obligatoire. Indique la fin deCASETraitement d'une fonction.
Exemples
Convertissez les valeurs de la colonne
d'âge
en regroupements par plage (bining) :CASE WHEN [age] <= 25 THEN "0-25" WHEN [age] <= 50 THEN "26-50" ELSE "over 50"
END
Transformez les valeurs de la colonne
Sexe
d'une chaîne à une autre :CASE WHEN [gender] = "M" THEN "Male" WHEN [gender] = "F" THEN
"Female" ELSE "Unknown" END
La colonne
du véhicule
contient les valeurs suivantes : benchmark, car, chariot, chariot, chariot, Tricycle et moto. L'exemple suivant convertit plusieurs valeurs de la colonne de véhicule
en une seule valeur :CASE WHEN [vehicle] in ("bike","scooter","motorcycle") THEN "two-wheelers" ELSE
"other" END