CASE WHEN in MySQL

Preet Sanghavi 3 Januar 2023
CASE WHEN in MySQL

In diesem Tutorial wollen wir verstehen, wie man die CASE WHEN-Anweisung in einer MySQL-Datenbank verwendet.

Unternehmen und Organisationen, die mit großen Datenmengen zu tun haben, müssen die Daten basierend auf bestimmten Bedingungen filtern. Und wenn es mehrere Bedingungen gibt, wird es für den Programmierer schwierig, eine effiziente Abfrage zu schreiben, die Daten schnell abrufen kann.

MySQL hilft uns bei dieser Operation mit Hilfe der CASE WHEN-Anweisung.

Die Anweisung CASE WHEN ist nützlich und wird an allen Arbeitsplätzen verwendet, die sich mit der Datenfilterung in MySQL befassen. Lassen Sie uns diese Methode in Aktion sehen.

Aber bevor wir beginnen, lassen Sie uns einen Dummy-Datensatz erstellen, indem wir eine Tabelle student_details mit einigen Zeilen erstellen.

-- 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");

Die obige Abfrage erstellt eine Tabelle mit Zeilen mit dem Vor- und Nachnamen des Schülers. Um die Einträge in den Daten anzuzeigen, verwenden wir den folgenden Code:

SELECT * FROM student_details;

Der obige Code würde die folgende Ausgabe ergeben:

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

Da wir unsere Tabelle eingerichtet haben, lassen Sie uns diese Daten mit der Anweisung CASE WHEN filtern.

CASE WHEN in MySQL

Wie oben erwähnt, hilft uns die CASE WHEN-Anweisung, Werte abzurufen, die die in ihrem Ausdruck angegebene Bedingung erfüllen.

Hier ist die grundlegende Syntax der CASE WHEN-Anweisung:

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

Der oben genannte Code gibt output_1 zurück, wenn condition_1 erfüllt ist, output_2, wenn condition_2 erfüllt ist, und output_3, wenn weder condition_1 noch condition_2 erfüllt sind.

Lassen Sie uns nun die Tabelle student_details basierend auf der stu_id filtern. Wenn die stu_id kleiner oder gleich drei ist, möchten wir student with smaller id drucken, und wenn die stu_id größer als drei ist, drucken wir student with greater id.

Wir können diese Operation mit dem folgenden Code ausführen.

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;

Die Ausgabe der oben genannten Abfrage sieht wie folgt aus.

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

Wie wir im oben genannten Codeblock sehen können, erhalten Studenten mit einer stu_id größer als drei als Case-Ergebnis student with greater id. Andernfalls erhalten wir als Fallergebnis Student mit kleinerer ID.

Hinweis
Im oben genannten Code verwenden wir den Alias case_result zur besseren Lesbarkeit mit dem Schlüsselwort AS in MySQL.

So können wir mit Hilfe der CASE WHEN-Anweisung effizient verschiedene Bedingungen durchgehen und passende Daten aus einer Tabelle in MySQL finden.

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

Verwandter Artikel - MySQL Query