Heim >Datenbank >MySQL-Tutorial >Wie kann ich bedingte Logik in SQL-SELECT-Anweisungen ausführen?
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!