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
.
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.