Simple CASE
CASE <test-expr> WHEN <expr> THEN <result> [WHEN <expr> THEN <result> ...] [ELSE <defaultresult>] END
Avec cette variante, la test-expr est comparée à la première expr,puis le deuxième expr, et ainsi de suite,jusqu’à ce qu’une correspondance soit trouvée, auquel cas le résultat correspondant est renvoyé.Si aucune correspondance n’est trouvée, le résultat par défaut de la branche ELSE
est retourné.S’il n’y a pas de correspondance et que la branche ELSE
est manquante, il retourne NULL
.
Une correspondance est équivalente à l’opérateur “=
”, c’est-à-dire queSi test-expr a la valeur NULL
, alors il ne correspond à aucune des expr, même celles qui ont la valeur NULL
.
Les résultats ne doivent pas nécessairement être des valeurs littérales, ils peuvent aussi être des noms de champs, des variables, des expressions complexes ou des NULL
.
CASE
SELECT
NAME,
AGE,
CASE UPPER(SEX)
WHEN 'M' THEN 'Male'
WHEN 'F' THEN 'Female'
ELSE 'Unknown'
END AS SEXNAME,
RELIGION
FROM PEOPLE
Une forme abrégée de l’opérateur CASE
simple est utilisée dans la fonction DECODE.