Heim >Datenbank >MySQL-Tutorial >Wie kann ich bedingte Logik in SQL-SELECT-Anweisungen ausführen?

Wie kann ich bedingte Logik in SQL-SELECT-Anweisungen ausführen?

Susan Sarandon
Susan SarandonOriginal
2025-01-22 15:16:10793Durchsuche

How Can I Perform Conditional Logic in SQL SELECT Statements?

Bedingte Logik in SQL-SELECT-Anweisungen: Ein umfassender Leitfaden

SQL erfordert häufig bedingte Logik innerhalb von SELECT-Anweisungen, um Daten zu ändern oder zu filtern. Die CASE-Anweisung bietet eine vielseitige Lösung, die in zahlreichen SQL-Dialekten unterstützt wird.

Um eine IF...THEN-Struktur in einer SELECT-Abfrage nachzuahmen, verwenden Sie die CASE-Anweisung wie unten gezeigt:

<code class="language-sql">SELECT CAST(
    CASE
        WHEN condition1 OR condition2 THEN value_if_true
        ELSE value_if_false
    END AS data_type) AS new_column, *
FROM table_name;</code>

Hier ist eine Aufschlüsselung der Syntax:

  • condition1 und condition2: Die auszuwertenden Bedingungen.
  • value_if_true und value_if_false: Die zurückgegebenen Werte abhängig davon, ob die Bedingungen wahr oder falsch sind.
  • data_type: Der Datentyp des new_column Ergebnisses.
  • table_name: Die Tabelle, aus der Daten ausgewählt werden.

Um beispielsweise eine Saleable-Spalte zu einer Product-Tabelle hinzuzufügen, die die Produktverfügbarkeit basierend auf Obsolete und InStock-Status angibt:

<code class="language-sql">SELECT CAST(
    CASE
        WHEN Obsolete = 'N' OR InStock = 'Y' THEN 1
        ELSE 0
    END AS bit) AS Saleable, *
FROM Product;</code>

Eine vereinfachte Version, bei der CAST weggelassen wird, ergibt ein ganzzahliges Ergebnis:

<code class="language-sql">SELECT CASE
    WHEN Obsolete = 'N' OR InStock = 'Y' THEN 1
    ELSE 0
END AS Saleable, *
FROM Product;</code>

CASE Anweisungen können verschachtelt oder in Aggregatfunktionen integriert werden. Darüber hinaus führte SQL Server 2012 die Anweisung IIF ein, die eine alternative, prägnante Syntax bietet:

<code class="language-sql">SELECT IIF(Obsolete = 'N' OR InStock = 'Y', 1, 0) AS Saleable, *
FROM Product;</code>

Dies vereinfacht die bedingte Logik in Ihren SELECT Anweisungen und sorgt für Flexibilität und Effizienz bei der Datenbearbeitung.

Das obige ist der detaillierte Inhalt vonWie kann ich bedingte Logik in SQL-SELECT-Anweisungen ausführen?. 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