Heim >Datenbank >MySQL-Tutorial >Wie kann ich If-Then-Else-Logik mithilfe der CASE-Anweisung von SQL implementieren?
If-Then-Else-Logik in SQL
SQL bietet die Möglichkeit, bedingte Logik mithilfe der CASE-Anweisung auszuführen. Auch wenn es möglicherweise keine direkte Syntax für Wenn-Dann-Sonst-Konstrukte bietet, ermöglicht es Ihnen, eine Reihe von Bedingungen und entsprechenden Aktionen zu definieren.
Problem:
Angenommen, Sie Sie möchten Daten aus einer Tabelle basierend auf bestimmten Prioritäten auswählen:
Lösung mit CASE:
SELECT product, price FROM table1 WHERE CASE WHEN EXISTS (SELECT 1 FROM table1 WHERE project = 1) THEN 1 WHEN EXISTS (SELECT 1 FROM table1 WHERE customer = 2) THEN 2 WHEN EXISTS (SELECT 1 FROM table1 WHERE company = 3) THEN 3 ELSE NULL END IS NOT NULL;
Diese Abfrage wertet jede Bedingung nacheinander aus. Wenn das Projekt über einen Datensatz verfügt, wird die entsprechende Zeile zurückgegeben. andernfalls wird nach dem Kunden und dann nach dem Unternehmen gesucht. Es werden nur Zeilen ausgewählt, die eine der Bedingungen erfüllen.
Beispiel:
Die folgende Tabelle enthält einige Beispieldaten:
product | price | project | customer | company |
---|---|---|---|---|
A | 10 | 1 | NULL | NULL |
B | 20 | NULL | 2 | NULL |
C | 30 | NULL | NULL | 3 |
Wird ausgeführt Die Abfrage gibt die folgenden Ergebnisse zurück:
product | price |
---|---|
A | 10 |
Da es eine Zeile mit Projekt = 1 gibt, gelten die anderen Bedingungen ignoriert und die Zeile mit Produkt „A“ wird ausgewählt.
Das obige ist der detaillierte Inhalt vonWie kann ich If-Then-Else-Logik mithilfe der CASE-Anweisung von SQL implementieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!