CASE WHEN dans MySQL

Preet Sanghavi 25 mars 2022
CASE WHEN dans MySQL

Dans ce tutoriel, nous visons à comprendre comment utiliser l’instruction CASE WHEN dans une base de données MySQL.

Les entreprises et les organisations traitant de grandes quantités de données doivent filtrer les données en fonction de certaines conditions. Et s’il y a plusieurs conditions, il devient difficile pour le programmeur d’écrire une requête efficace qui puisse récupérer rapidement les données.

MySQL nous aide à effectuer cette opération à l’aide de l’instruction CASE WHEN.

L’instruction CASE WHEN est utile et utilisée dans tous les lieux de travail traitant du filtrage de données dans MySQL. Voyons cette méthode en action.

Mais avant de commencer, créons un jeu de données factice en créant une table, student_details avec quelques lignes.

-- create the table student_details
CREATE TABLE student_details(
  stu_id int,
  stu_firstName varchar(255) DEFAULT NULL,
  stu_lastName varchar(255) DEFAULT NULL,
  primary key(stu_id)
);
-- insert rows to the table student_details
INSERT INTO student_details(stu_id,stu_firstName,stu_lastName) 
 VALUES(1,"Preet","Sanghavi"),
 (2,"Rich","John"),
 (3,"Veron","Brow"),
 (4,"Preet","Jos"),
 (5,"Hash","Shah"),
 (6,"Sachin","Parker"),
 (7,"David","Miller");

La requête ci-dessus crée une table avec des lignes contenant le prénom et le nom de l’étudiant. Pour afficher les entrées dans les données, nous utilisons le code suivant :

SELECT * FROM student_details;

Le code ci-dessus donnerait la sortie suivante :

stu_id	stu_firstName	stu_lastName
1	      Preet	        Sanghavi
2	      Rich	        John
3	      Veron	        Brow
4	      Preet	        Jos
5	      Hash	        Shah
6	      Sachin	    Parker
7	      David	        Miller

Comme nous avons configuré notre table, filtrons ces données à l’aide de l’instruction CASE WHEN.

CASE WHEN dans MySQL

Comme mentionné ci-dessus, l’instruction CASE WHEN nous aide à récupérer les valeurs qui répondent à la condition spécifiée dans son expression.

Voici la syntaxe de base de l’instruction CASE WHEN :

CASE
    WHEN condition_1 THEN output_1
    WHEN condition_2 THEN output_2
    ELSE output_3
END;

Le code susmentionné renvoie la output_1 lorsque la condition_1 est satisfaite, la output_2 lorsque la condition_2 est satisfaite et la output_3 lorsque ni la condition_1 ni la condition_2 ne sont satisfaites.

Maintenant, filtrons la table student_details en fonction de stu_id. Lorsque le stu_id est inférieur ou égal à trois, nous souhaitons imprimer student with smaller id, et lorsque le stu_id est supérieur à trois, nous imprimons student with greater id.

Nous pouvons effectuer cette opération avec le code suivant.

SELECT stu_id, stu_firstName,
CASE
    WHEN stu_id > 3 THEN 'student with greater id'
    ELSE 'student with smaller id'
END as case_result
FROM student_details;

La sortie de la requête susmentionnée est la suivante.

stu_id	stu_firstName	case_result
1		Preet			student with smaller id
2		Rich			student with smaller id
3		Veron			student with smaller id
4		Preet			student with greater id
5		Hash			student with greater id
6		Sachin			student with greater id
7		David			student with greater id

Comme nous pouvons le voir dans le bloc de code susmentionné, les étudiants avec stu_id supérieur à trois obtiennent student with greater id comme résultat de cas. Sinon, nous obtenons student with smaller id comme résultat de cas.

Remarque : Dans le code précité, nous utilisons l’alias case_result pour une meilleure lisibilité avec comme mot-clé AS dans MySQL.

Ainsi, à l’aide de l’instruction CASE WHEN, nous pouvons parcourir efficacement différentes conditions et trouver des données correspondantes à partir d’une table dans MySQL.

Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub

Article connexe - MySQL Query