CASE- und IF-Ausdrücke in MySQL [] (CASE- und IF-Ausdrücke in MySQL), Lektion, Seite 722414
https://www.purl.org/stefan_ram/pub/case_if_mysql (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
SQL-Kurs

CASE- und IF-Ausdrücke in MySQL

IF

DROP SCHEMA S; CREATE SCHEMA S; USE S;
CREATE TABLE PERSON ( NACHNAME VARCHAR ( 255 ), VORNAME VARCHAR ( 255 ), DUZEN BOOL, WEIBLICH BOOL );
INSERT INTO PERSON ( NACHNAME, VORNAME, DUZEN, WEIBLICH ) VALUES ( 'Franzen', 'Marlene', TRUE, TRUE );
INSERT INTO PERSON ( NACHNAME, VORNAME, DUZEN, WEIBLICH ) VALUES ( 'Horten', 'Kristina', TRUE, TRUE );
INSERT INTO PERSON ( NACHNAME, VORNAME, DUZEN, WEIBLICH ) VALUES ( 'Zurk', 'Jutta', FALSE, TRUE );
INSERT INTO PERSON ( NACHNAME, VORNAME, DUZEN, WEIBLICH ) VALUES ( 'Leif', 'Rudi', FALSE, FALSE );
INSERT INTO PERSON ( NACHNAME, VORNAME, DUZEN, WEIBLICH ) VALUES ( 'Roos', 'Petra', FALSE, TRUE );
INSERT INTO PERSON ( NACHNAME, VORNAME, DUZEN, WEIBLICH ) VALUES ( 'Willems', 'Manfred', TRUE, FALSE );
INSERT INTO PERSON ( NACHNAME, VORNAME, DUZEN, WEIBLICH ) VALUES ( 'Hens', 'Klemens', FALSE, FALSE );
INSERT INTO PERSON ( NACHNAME, VORNAME, DUZEN, WEIBLICH ) VALUES ( 'Bauer', 'Mirco', FALSE, FALSE );
INSERT INTO PERSON ( NACHNAME, VORNAME, DUZEN, WEIBLICH ) VALUES ( 'Schmitz', 'Karl', TRUE, FALSE );
INSERT INTO PERSON ( NACHNAME, VORNAME, DUZEN, WEIBLICH ) VALUES ( 'Theissen', 'Marina', FALSE, TRUE );
SELECT * FROM PERSON;
+----------+----------+-------+----------+
| NACHNAME | VORNAME | DUZEN | WEIBLICH |
+----------+----------+-------+----------+
| Franzen | Marlene | 1 | 1 |
| Horten | Kristina | 1 | 1 |
| Zurk | Jutta | 0 | 1 |
| Leif | Rudi | 0 | 0 |
| Roos | Petra | 0 | 1 |
| Willems | Manfred | 1 | 0 |
| Hens | Klemens | 0 | 0 |
| Bauer | Mirco | 0 | 0 |
| Schmitz | Karl | 1 | 0 |
| Theissen | Marina | 0 | 1 |
+----------+----------+-------+----------+
SELECT IF( DUZEN, VORNAME, CONCAT( IF( WEIBLICH, 'Frau', 'Herr' ), ' ', NACHNAME )) AS ANREDE FROM PERSON;
+---------------+
| ANREDE |
+---------------+
| Marlene |
| Kristina |
| Frau Zurk |
| Herr Leif |
| Frau Roos |
| Manfred |
| Herr Hens |
| Herr Bauer |
| Karl |
| Frau Theissen |
+---------------+

CASE mit „CASE + Ausdruck“

Kunde

Kennung Vorname Nachname Geschlecht

0 Mia Schmidt w

1 Hannah Schmidt w

2 Leon Weber m

SELECT Vorname,

CASE Geschlecht

WHEN 'w' THEN 'weiblich'

WHEN 'm' THEN 'maennlich'

ELSE 'unbekannt'

END

AS 'Geschlecht'

FROM Kunde

Vorname Geschlecht

Mia weiblich

Hannah weiblich

Leon maennlich

Oben wurden keine Umlaute verwendet, da diese in seltenen Fällen Probleme bereiten könnten.

Die WHEN-Klauseln können beliebig oft wiederholt werden, die ELSE-Klausel ist optional (kann auch entfallen).

CASE mit „WHEN + Ausdruck

Das folgende Beispiel zeigt eine Variante, bei welcher der Feldname nicht nach dem »CASE«, sondern nach jedem »WHEN« steht. In diesem Fall muß nicht nach jedem »WHEN« derselbe Feldname verwendet werden.

Kunde

Kennung Vorname Nachname Mann Frau

0 Mia Schmidt x

1 Hannah Schmidt x

2 Leon Weber x

SELECT Vorname,

CASE

WHEN Frau='x' THEN 'weiblich'

WHEN Mann='x' THEN 'maennlich'

ELSE 'unbekannt'

END

AS 'Geschlecht'

FROM Kunde

Vorname Geschlecht

Mia weiblich

Hannah weiblich

Leon maennlich

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram722414 stefan_ram:722414 CASE- und IF-Ausdrücke in MySQL Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd722414, slrprddef722414, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/case_if_mysql