Lorsque vous entrez votre requête dans l’éditeur SQL ou créez un calcul, vous utilisez la syntaxe Presto SQL. Pour renvoyer des valeurs en fonction de conditions spécifiques, ces expressions courantes peuvent s’avérer utiles.
CASE
Pour évaluer une liste de conditions et renvoyer une valeur basée sur la première correspondance ou condition vraie, utilisez une expression CASE, par exemple pour activer la logique if/else. CASE a deux formats :
- Sous sa forme simple,
CASEévalue la liste pour une expression spécifique et renvoie sa valeur, par exemple
CASE expression WHEN valeur THEN résultat [ WHEN ... ] [ ELSE résultat ] END
- Dans sa forme recherchée,
CASEévalue une liste d’opérateurs booléens et renvoie la valeur de la première conditionVRAIE, par exemple
CASE WHEN condition THEN résultat [ WHEN ... ] [ ELSE résultat ] END
Par exemple, dans sa forme simple, elle renvoie une valeur ("un" ou "deux") sur la base d’une expression correspondante :
SELECT expression, CASE expression WHEN 1 THEN ’un’ WHEN 2 THEN ’deux’ ELSE ’beaucoup’ END
Si aucune condition n’est vraie, CASE renvoie la valeur de la clause ELSE (« beaucoup », dans cet exemple) ou NULL s’il n’y a pas de clause ELSE.
Note : pour renvoyer une valeur selon qu’une seule condition est vraie ou non, utilisez une instruction IF.
COALESCE
Pour renvoyer la première valeur non nulle d’une liste, utilisez l’expression COALESCE : COALESCE(valeur1, valeur2, valeur3).
IF
Pour renvoyer une valeur selon qu’une condition est vraie ou fausse, utilisez l’instruction IF : IF(condition, valeur_vrai, valeur_faux).
Note : si la condition est fausse et qu’aucune valeur_faux n’est spécifiée, l’instruction IF renvoie NULL.
IS NULL ou IS NOT NULL
Pour vérifier si une valeur est vide ou NULL, utilisez l’opérateur IS NULL ou IS NOT NULL :
- Pour tester la présence de valeurs vides, utilisez
IS NULL. - Pour tester la présence de valeurs non vides, utilisez
IS NOT NULL.
Par exemple, pour tester les données des clients qui n’ont pas d’adresse :
SELECT Nom_client, Nom_contact, Adresse
FROM Clients
WHERE Adresse IS NULL
TRY
Pour renvoyer NULL lorsqu’une expression échoue en raison de données corrompues ou non valides, utilisez l’expression TRY : TRY(expression). TRY traite ces erreurs :
- Division par zéro
-
CASTou argument de fonction non valide - Valeur numérique hors plage