Direkt zum Inhalt
Urkunden
FunktionenAusdrückeSchlüsselwörterAussagenKlauseln

MySQL CASE-Ausdruck

Der "CASE"-Ausdruck in MySQL wird für die bedingte Logik in SQL-Abfragen verwendet und ermöglicht es dir, bestimmte Werte basierend auf verschiedenen Bedingungen zurückzugeben. Sie funktioniert ähnlich wie eine if-else-Anweisung in Programmiersprachen.

Verwendung

Der Ausdruck "CASE" wird verwendet, um bedingte Logik in SQL-Abfragen auszuführen, vor allem in "SELECT"-, "UPDATE"- und "ORDER BY"-Klauseln. Sie wertet die Bedingungen der Reihe nach aus und gibt einen bestimmten Wert zurück, wenn die erste wahre Bedingung eintritt.


CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ...
    ELSE resultN
END;

In dieser Syntax prüft `CASE` jede Bedingung nacheinander und gibt das entsprechende Ergebnis für die erste wahre Bedingung zurück; wenn keine wahr ist, gibt es das Ergebnis `ELSE` zurück.

Beispiele

1. Grundlegende Verwendung des Koffers


SELECT product_name,
       CASE
           WHEN stock_quantity > 0 THEN 'In Stock'
           ELSE 'Out of Stock'
       END AS stock_status
FROM products;

Dieses Beispiel wertet die "stock_quantity" aus und gibt "In Stock" zurück, wenn die Menge größer als Null ist, andernfalls "Out of Stock".

2. Mehrere Bedingungen


SELECT employee_name,
       CASE
           WHEN salary > 50000 THEN 'High Salary'
           WHEN salary BETWEEN 30000 AND 50000 THEN 'Medium Salary'
           ELSE 'Low Salary'
       END AS salary_category
FROM employees;

In dieser Abfrage kategorisiert der Ausdruck "CASE" die Mitarbeiter in Gehaltsgruppen und bietet so eine genauere Kontrolle über die Ausgabebezeichnungen.

3. CASE in ORDER BY verwenden


SELECT order_id, order_date
FROM orders
ORDER BY
    CASE
        WHEN order_status = 'Pending' THEN 1
        WHEN order_status = 'Shipped' THEN 2
        ELSE 3
    END;

Hier wird der Ausdruck "CASE" verwendet, um die Ergebnisse nach dem "order_status" zu ordnen, wobei "Pending" Vorrang hat, gefolgt von "Shipped" und dann jeder andere Status.

4. CASE in UPDATE verwenden


UPDATE employees
SET salary_category = 
    CASE
        WHEN salary > 50000 THEN 'High Salary'
        WHEN salary BETWEEN 30000 AND 50000 THEN 'Medium Salary'
        ELSE 'Low Salary'
    END;

Dieses Beispiel zeigt, wie `CASE` in einer `UPDATE`-Anweisung verwendet werden kann, um das Feld `salary_category` auf der Grundlage verschiedener Gehaltsbereiche zu setzen.

Tipps und bewährte Praktiken

  • Achte auf Vollständigkeit. Füge immer eine `ELSE'-Klausel ein, um unerwartete oder ungültige Fälle zu behandeln und die Robustheit der Abfrage zu erhöhen.
  • Halte die Bedingungen einfach. Vereinfache die Bedingungen in `CASE`, um die Lesbarkeit zu erhalten und Fehler zu reduzieren.
  • Verwende geeignete Datentypen. Achte darauf, dass die Datentypen der Ergebnisse in `THEN`- und `ELSE`-Klauseln konsistent sind, um Fehler zu vermeiden.
  • Optimiere die Leistung. Platziere die wahrscheinlichsten wahren Bedingungen zuerst, um die Auswertungszeit zu minimieren und die Abfrageleistung zu verbessern.
  • SQL Standards. Der `CASE'-Ausdruck von MySQL hält sich an die SQL-Standards und sorgt so für Kompatibilität zwischen verschiedenen SQL-Datenbanken.

SQL Upskilling für Einsteiger

Erwerbe die SQL-Kenntnisse, um mit deinen Daten zu interagieren und sie abzufragen.
Kostenloses Lernen beginnen