SQL Server IF…ELSE-Bedingungsanweisung: Beispiel für eine T-SQL-Auswahlabfrage
Warum brauchen Sie bedingte Anweisungen?
Bedingte Anweisungen im SQL Server helfen Ihnen, verschiedene Logiken und Aktionen für verschiedene Bedingungen zu definieren. Es ermöglicht Ihnen, verschiedene Aktionen basierend auf den in der Anweisung definierten Bedingungen auszuführen. Im wirklichen Leben führen Sie viele Aktionen aus, die vom Ergebnis einer anderen Aktivität oder Situation abhängig sind.
Einige Echtzeitbeispiele für SQL-Case-Anweisungen sind:
- Wenn es morgen regnet, werde ich einen Roadtrip planen.
- Wenn Flugtickets von meiner Stadt aus weniger als 400 US-Dollar kosten, mache ich Urlaub in Europa, andernfalls bevorzuge ich einen nahegelegenen Touristenort.
Hier können Sie sehen, dass es sich um eine Aktion wie „Roadtrip“ oben handelt bedingt abhängig vom Ergebnis einer anderen Aktivität, die lautet: „Ob es morgen regnen wird oder nicht!“
Ebenso bietet MS SQL auch die Möglichkeit, T-SQL-Anweisungen bedingt auszuführen.
IF… Else-Anweisung in SQL Server
In MS SQL, ANSONSTEN ist eine Art von Bedingte Anweisung.
Jede T-SQL-Anweisung kann mit bedingt ausgeführt werden ANSONSTEN.
Die folgende Abbildung erklärt IF ELSE in SQL Server:
- Wenn die Bedingung zu ausgewertet wird Wahr, dann T-SQL-Anweisungen gefolgt von IF Bedingung im SQL Server wird ausgeführt.
- Wenn die Bedingung zu ausgewertet wird Falsch dann T-SQL-Anweisungen gefolgt von ELSE Schlüsselwort wird ausgeführt.
- Sobald entweder eine IF-T-SQL-Anweisung oder eine ELSE-T-SQL-Anweisung ausgeführt wird, wird die Ausführung anderer bedingungsloser T-SQL-Anweisungen fortgesetzt.
IF… Else Syntax und Regeln in SQL
Syntax:
IF <Condition> {Statement | Block_of_statement} [ ELSE {Statement | Block_of_statement}]
Regeln:
- Die Bedingung sollte sein Boolescher AusdruckDh Die Bedingung führt bei der Auswertung zu einem booleschen Wert.
- IF ELSE-Anweisung in SQL kann eine einzelne T-SQL-Anweisung oder einen Block von T-SQL-Anweisungen bedingt verarbeiten.
- Der Anweisungsblock sollte mit dem Schlüsselwort BEGIN beginnen und mit dem Schlüsselwort END schließen.
- Die Verwendung von BEGIN und END hilft dem SQL-Server, den auszuführenden Anweisungsblock zu identifizieren und ihn von den übrigen T-SQL-Anweisungen zu trennen, die nicht Teil des IF…ELSE T-SQL-Blocks sind.
- ELSE ist optional.
IF…ELSE mit dem einzigen numerischen Wert im booleschen Ausdruck.
Bedingung: WAHR
IF (1=1) PRINT 'IF STATEMENT: CONDITION IS TRUE' ELSE PRINT 'ELSE STATEMENT: CONDITION IS FALSE'
Zustand: FALSCH
IF (1=2) PRINT 'IF STATEMENT: CONDITION IS TRUE' ELSE PRINT 'ELSE STATEMENT: CONDITION IS FALSE'
Annahme: Gehen Sie davon aus, dass Sie die Tabelle als haben 'Guru99' mit zwei Spalten und vier Zeilen wie unten dargestellt:
Wir werden verwenden 'Guru99' Tabelle in weiteren Beispielen
IF…ELSE mit der Variablen im booleschen Ausdruck.
Bedingung: WAHR
DECLARE @Course_ID INT = 4 IF (@Course_ID = 4) Select * from Guru99 where Tutorial_ID = 4 ELSE Select * from Guru99 where Tutorial_ID != 4
Zustand: FALSCH
DECLARE @Course_ID INT = 4 IF (@Course_ID != 4) Select * from Guru99 where Tutorial_ID = 4 ELSE Select * from Guru99 where Tutorial_ID != 4
IF…ELSE mit Begin End
Bedingung: WAHR
DECLARE @Course_ID INT = 2 IF (@Course_ID <=2) BEGIN Select * from Guru99 where Tutorial_ID = 1 Select * from Guru99 where Tutorial_ID = 2 END ELSE BEGIN Select * from Guru99 where Tutorial_ID = 3 Select * from Guru99 where Tutorial_ID = 4 END
Zustand: FALSCH
DECLARE @Course_ID INT = 2 IF (@Course_ID >=3) BEGIN Select * from Guru99 where Tutorial_ID = 1 Select * from Guru99 where Tutorial_ID = 2 END ELSE BEGIN Select * from Guru99 where Tutorial_ID = 3 Select * from Guru99 where Tutorial_ID = 4 END
IF-Anweisung ohne Else
Sie können eine IF-Anweisung in SQL ohne ELSE-Teil verwenden. Denken Sie daran, dass wir angegeben haben, dass der ELSE-Teil optional ist. Zum Beispiel:
DECLARE @Course_ID INT = 2 IF (@Course_ID <=2) Select * from Guru99 where Tutorial_ID = 1
Es wird Folgendes gedruckt:
Die Ausführung der Bedingung „false“ führt zu keiner Ausgabe. Betrachten Sie die folgende Abfrage
DECLARE @Course_ID INT = 2 IF (@Course_ID <=0) Select * from Guru99 where Tutorial_ID = 1
Das Ergebnis ist es
Verschachtelte IF…Else-Anweisungen
im Gegensatz zu anderen Programmiersprachen, können Sie keine ELSE IF-Anweisung innerhalb einer IF ELSE-Bedingung in SQL hinzufügen. Aus diesem Grund können Sie IF ELSE in SQL-Abfrageanweisungen verschachteln. Es wird unten demonstriert:
DECLARE @age INT; SET @age = 60; IF @age < 18 PRINT 'underage'; ELSE BEGIN IF @age < 50 PRINT 'You are below 50'; ELSE PRINT 'Senior'; END;
- In diesem Beispiel gibt der Code „underage“ aus, wenn der Wert von „@age“ unter 18 liegt.
- Wenn nicht, wird der ELSE-Teil ausgeführt. Der ElSE-Teil verfügt über ein verschachteltes IF…ELSE.
- Wenn der Wert von @age unter 50 liegt, wird „Sie sind unter 50“ gedruckt. Wenn keine dieser Bedingungen zutrifft, wird im Code „Senior“ gedruckt.
Zusammenfassung
- Variablen sind das Objekt, das als Platzhalter fungiert.
- Der Anweisungsblock sollte mit dem Schlüsselwort BEGIN beginnen und mit dem Schlüsselwort END schließen.
- Die Verwendung von „Else“ in der IF… ELSE-Anweisung ist optional
- Es ist auch möglich, die SQL-IF-ELSE-Bedingung in einer anderen IF…ELSE-Anweisung zu verschachteln.