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:

Wie If and Else funktioniert
Wie wenn und sonst funktioniert
  • 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'

IF…ELSE mit dem einzigen numerischen Wert im booleschen Ausdruck

Zustand: FALSCH

IF (1=2)
PRINT 'IF STATEMENT: CONDITION IS TRUE'
ELSE
PRINT 'ELSE STATEMENT: CONDITION IS FALSE'

IF…ELSE mit dem einzigen numerischen Wert im booleschen Ausdruck

Annahme: Gehen Sie davon aus, dass Sie die Tabelle als haben 'Guru99' mit zwei Spalten und vier Zeilen wie unten dargestellt:

IF…ELSE mit dem einzigen numerischen Wert im booleschen Ausdruck

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

IF...ELSE mit der Variablen im booleschen Ausdruck

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 der Variablen im booleschen Ausdruck

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

IF...ELSE mit Begin 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...ELSE mit Begin 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:

IF-Anweisung ohne Else

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

IF-Anweisung ohne Else

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.

Verschachtelte IF…Else-Anweisungen

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.