Heim >Datenbank >MySQL-Tutorial >Wie kann ich If-Then-Else-Logik mithilfe der CASE-Anweisung von SQL implementieren?

Wie kann ich If-Then-Else-Logik mithilfe der CASE-Anweisung von SQL implementieren?

Barbara Streisand
Barbara StreisandOriginal
2024-12-29 05:10:11359Durchsuche

How Can I Implement If-Then-Else Logic Using SQL's CASE Statement?

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:

  • Wenn das Projekt einen Datensatz hat, kehren Sie zurück es.
  • Wenn der Kunde einen Datensatz hat, geben Sie ihn zurück.
  • Wenn das Unternehmen einen Datensatz hat, geben Sie ihn zurück.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn