Die Programmiersprache SQL ist ein wertvolles Werkzeug für Entwickler und Experten. Denn mithilfe einer Vielzahl von Abfragen ist es möglich, Daten und Systeme von relationalen Datenbanken zu manipulieren. Zu den unverzichtbaren Befehlen gehört CASE SQL. Wozu dient diese Abfrage? Und wie wird sie verwendet? Finde die Antworten in diesem Artikel.
Was ist der CASE-Befehl?
In der Computersprache hat der Befehl CASE/WHEN denselben Zweck wie die Funktion WENN/NEIN (oder IF/ELSE). Nämlich ein Ergebnis aus mehreren Möglichkeiten zurückzugeben.
Je nach der verwendeten Syntax kann CASE :
1º eine Angabe mit einer Reihe von möglichen Ergebnissen vergleichen. In diesem Fall ist die Syntax von CASE SQL wie folgt:
CASE
WHEN Ausdruck THEN Ergebnis
ELSE anderes Ergebnis
END
2 º Bestimme ein Ergebnis, indem du mehrere Boolesche Ausdrücke (wahr oder falsch) aufstellst. Die Syntax lautet wie folgt:
CASE
WHEN boolescher Ausdruck THEN Ergebnis.
ELSE anderes Ergebnis
END
Gut zu wissen: In beiden Fällen ist die ELSE-Klausel optional. Dadurch kann ein Wert gesetzt werden, falls die WHEN-Bedingungen nicht erfüllt sind.
Abgesehen von diesen vereinfachten Syntaxen wird die CASE SQL-Abfrage sehr oft in Verbindung mit anderen Befehlen verwendet.
💡Auch interessant:
MySQL Relationale Datenbanksoftware |
SQL Tutorial |
Apache Cassandra noSQL BDD |
SQL Joins |
SQL Count Tutorial |
SQL Datei öffnen |
Welche anderen Befehle kannst du mit CASE SQL verwenden?
Um die Datenbank zu erweitern, kann die CASE SQL-Abfrage auch mit anderen Befehlen verwendet werden. Hier sind die wichtigsten und ihre verschiedenen Funktionen:
- SELECT: Dies ist eine der häufigsten SQL-Abfragen. Sie ermöglicht die Auswahl von Spalten innerhalb einer Tabelle.
- UPDATE: Mit diesem Befehl kannst du eine Spalte aktualisieren.
- DELETE: Hiermit werden eine oder mehrere Spalten gelöscht.
- ORDER BY: Mit dieser Abfrage kannst du die Daten in der Tabelle ordnen (in absteigender oder aufsteigender Reihenfolge).
- GROUP BY: Damit werden Daten nach einer definierten Bedingung gruppiert.
- INSERT INTO: Wenn du weitere Informationen in deine Datentabelle einfügen möchtest.
- SUM: Damit kannst du Summen bilden (von einem Produkt, einem Preis, …).
- HAVING: Um Zeilen einzuschränken.
Schauen wir uns nun einige konkrete Anwendungsbeispiele an.
3 Beispiele für den Einsatz von CASE SQL
Um dir zu helfen, die Verwendung von CASE SQL besser zu verstehen, findest du hier einige konkrete Beispiele.
Für jedes von ihnen werden wir diese Tabelle „Einkauf“ verwenden. Das Ziel des Unternehmens ist es, den richtigen Preis festzulegen. Dazu stützt sie sich auf die erzielte Gewinnspanne.
ID | Produktname | Marge | Menge | Einzelpreis |
---|---|---|---|---|
1 | Produkt 1 | 1 | 1 | 50 |
2 | Produkt 2 | 1,25 | 3 | 70 |
3 | Produkt 3 | 0,75 | 2 | 60 |
4 | Produkt 4 | 1,5 | 2 | 80 |
Persönliche Nachricht
Ziel ist es, die Entscheidungsträger über die Preispositionierung der einzelnen Produkte zu informieren. Dazu kann die CASE SQL-Abfrage verwendet werden.
Die Syntax lautet wie folgt:
SELECT id, Produktname, Gewinnspanne,Menge, Stückpreis,
CASE
WHEN Marge > 1 THEN ‚Hoher Preis‘.
WHEN Marge < 1 THEN ‚Niedriger Preis‘.
ELSE ‚Normaler Preis‘.
END
FROM `Kauf`
Und das Ergebnis :
ID | Produktname | Marge | Menge | Einzelpreis | FALL |
---|---|---|---|---|---|
1 | Produkt 1 | 1 | 1 | 50 | Normaler Preis |
2 | Produkt 2 | 1,25 | 3 | 70 | Hoher Preis |
3 | Produkt 3 | 0,75 | 2 | 60 | Niedriger Preis |
4 | Produkt 4 | 1,5 | 2 | 80 | Hoher Preis |
Änderung des Preises pro Einheit
Um seine Preispolitik anzupassen, möchte das Unternehmen seine Preise entsprechend seiner Gewinnspanne ändern: Bei einer positiven Gewinnspanne soll der Preis um 10 % gesenkt werden, bei einer negativen Gewinnspanne soll er um 10 % erhöht werden.
Auch hier kann die Datenbank durch die Verwendung von Bedingungen und dem Befehl CASE SQL schnell geändert werden.
Die Syntax lautet wie folgt:
SELECT id, Produktname, Marge,Menge, Stückpreis,
CASE
WHEN margin > 1 THEN ‚Preis pro Einheit * 0,9‘.
WHEN Marge < 1 THEN ‚Preis pro Einheit * 1,1‘.
ELSE ‚Preis pro Einheit‘.
END
FROM `Kauf`
Und das Ergebnis :
ID | Produktname | Marge | Menge | Einzelpreis |
---|---|---|---|---|
1 | Produkt 1 | 1 | 1 | 50 |
2 | Produkt 2 | 1,25 | 3 | 63 |
3 | Produkt 3 | 0,75 | 2 | 66 |
4 | Produkt 4 | 1,5 | 2 | 72 |
Aktualisieren der Menge
Über SELECT hinaus kann die CASE SQL-Abfrage auch mit anderen Befehlen wie UPDATE verwendet werden.
Um dir bei der Visualisierung dieser Abfrage zu helfen, ist hier ein hypothetisches Szenario dargestellt.
Für alle Produkte mit einer positiven Gewinnspanne bietet das Unternehmen ein weiteres, zusätzliches Produkt an. In diesem Rahmen muss die Tabelle aktualisiert werden.
Dies geschieht folgendermaßen:
UPDATE `Kauf`
SET `Menge` = (
CASE
WHEN margin > 1 THEN ‚Quantity + 1‘.
ELSE ‚Menge‘.
END
)
Und das Ergebnis :
ID | Produktname | Marge | Menge | Einzelpreis |
---|---|---|---|---|
1 | Produkt 1 | 1 | 1 | 50 |
2 | Produkt 2 | 1,25 | 4 | 70 |
3 | Produkt 3 | 0,75 | 2 | 60 |
4 | Produkt 4 | 1,5 | 3 | 80 |
Dies sind nur einige vereinfachte Beispiele. Wenn du mehr über die verschiedenen Anwendungsfälle der CASE SQL-Abfrage erfahren möchtest, nimm an unserer Schulung bei DataScientest teil.
Erweitere deine Fähigkeiten mit DataScientest
Neben der CASE-SQL-Abfrage gibt es in der strukturierten Query-Sprache eine Vielzahl von Befehlen, um Datenbanken zu manipulieren. Um sie alle zu verstehen, ist es wichtig, sich weiterzubilden. Aus diesem Grund bieten wir bei Datascientest verschiedene Schulungen an.