SELECT 'Je suis né après 2010' AS naissance;
END IF;
-- Toujours
obligatoire
END |
DELIMITER ;
CALL avant_apres_2010(34);
-- Né le 20/04/2008
CALL avant_apres_2010(69);
-- Né le 13/02/2012
Troisième et dernier cas : plusieurs conditions alternatives
Enfin, le mot-clé ELSEIF... THEN permet de vérifier d'autres conditions (en dehors de la condition du IF), chacune ayant
une série d'instructions définies à exécuter en cas de véracité. Si plusieurs conditions sont vraies en même temps, seule la
première rencontrée verra ses instructions exécutées.
On peut bien sûr toujours (mais ce n'est pas obligatoire) ajouter un ELSE pour le cas où aucune condition ne serait vérifiée.
Exemple : cette procédure affiche un message différent selon le sexe de l'animal passé en paramètre.
Code : SQL
DELIMITER |
CREATE PROCEDURE message_sexe(IN p_animal_id INT)
BEGIN
DECLARE v_sexe VARCHAR(10);
SELECT sexe INTO v_sexe
FROM Animal
WHERE id = p_animal_id;
IF (v_sexe = 'F') THEN
-- Première possibilité
SELECT 'Je suis une femelle !' AS sexe;
ELSEIF (v_sexe = 'M') THEN
-- Deuxième
possibilité
SELECT 'Je suis un mâle !' AS sexe;
ELSE
-- Défaut
SELECT 'Je suis en plein questionnement existentiel...' AS
sexe;
END IF;
END|
DELIMITER ;
CALL message_sexe(8);
-- Mâle
CALL message_sexe(6);
-- Femelle
CALL message_sexe(9);
-- Ni l'un ni l'autre
Il peut bien sûr y avoir autant de ELSEIF... THEN que l'on veut (mais un seul ELSE).
La structure CASE
Deux syntaxes sont possibles pour utiliser CASE.
Première syntaxe : conditions d'égalité
Code : SQL
CASE valeur_a_comparer
WHEN possibilite1 THEN instructions
[WHEN possibilite2 THEN instructions] ...
[ELSE instructions]
END CASE;
Partie 5 : Sécuriser et automatiser ses actions
281/414
www.openclassrooms.com
Précédent

- 281/413

Suivant