Suche…


Einzelne IF-Anweisung

Wie die meisten anderen Programmiersprachen unterstützt T-SQL auch IF..ELSE-Anweisungen.

Im folgenden Beispiel ist 1 = 1 der Ausdruck, der den BEGIN..END True BEGIN..END und das Steuerelement in den BEGIN..END Block eintritt und die Print-Anweisung die Zeichenfolge 'One is equal to One' BEGIN..END

IF ( 1 = 1)  --<-- Some Expression 
 BEGIN
   PRINT 'One is equal to One'
 END

Mehrere IF-Anweisungen

Wir können mehrere IF-Anweisungen verwenden, um mehrere Ausdrücke völlig unabhängig voneinander zu prüfen.

Im folgenden Beispiel wird der Ausdruck jeder IF Anweisung ausgewertet, und wenn sie wahr ist, wird der Code innerhalb des BEGIN...END Blocks ausgeführt. In diesem speziellen Beispiel sind der erste und der dritte Ausdruck wahr und nur diese Druckanweisungen werden ausgeführt.

IF (1 = 1)  --<-- Some Expression      --<-- This is true 
BEGIN
    PRINT 'First IF is True'           --<-- this will be executed
END

IF (1 = 2)  --<-- Some Expression 
BEGIN
    PRINT 'Second IF is True'
END

IF (3 = 3)  --<-- Some Expression        --<-- This true 
BEGIN
    PRINT 'Thrid IF is True'             --<-- this will be executed
END

Einzelne IF..ELSE-Anweisung

Wenn der Ausdruck in einer einzigen IF..ELSE Anweisung in der IF Anweisung als "True" ausgewertet wird, tritt die Steuerung in den ersten BEGIN..END Block ein und wird nur der Code innerhalb dieses Blocks ausgeführt, der Else-Block wird einfach ignoriert.

Wenn der Ausdruck dagegen als " False ausgewertet wird, wird der ELSE BEGIN..END Block ausgeführt und die Steuerung tritt niemals in den ersten BEGIN..END Block ein.

Im nachstehenden Beispiel wird der Ausdruck als "false" ausgewertet und der Else-Block wird ausgeführt, wobei die Zeichenfolge 'First expression was not true' gedruckt 'First expression was not true'

IF ( 1 <> 1)  --<-- Some Expression
 BEGIN
     PRINT 'One is equal to One'
 END
ELSE 
 BEGIN
     PRINT 'First expression was not true'
 END

Mehrere IF ... ELSE mit endgültigen ELSE-Anweisungen

Wenn wir Multiple IF...ELSE IF Anweisungen haben, aber auch etwas Code ausführen möchten, wenn keine der Ausdrücke als "True" ausgewertet wird, können wir einfach einen abschließenden ELSE Block hinzufügen, der nur ausgeführt wird, wenn keine der IF oder ELSE IF Ausdrücke werden als wahr ausgewertet.

Im folgenden Beispiel ist 'No other expression is true' der IF noch der ELSE IF Ausdruck "True", daher wird nur der ELSE Block ausgeführt und 'No other expression is true'

IF ( 1 = 1 + 1 )
    BEGIN
       PRINT 'First If Condition'
    END 
ELSE IF (1 = 2)
    BEGIN
        PRINT 'Second If Else Block'
    END
ELSE IF (1 = 3)
    BEGIN
        PRINT 'Third If Else Block'
    END
ELSE 
    BEGIN
        PRINT 'No other expression is true'  --<-- Only this statement will be printed
    END

Mehrere IF ... ELSE-Anweisungen

In den meisten Fällen müssen wir mehrere Ausdrücke überprüfen und auf der Grundlage dieser Ausdrücke spezifische Aktionen ausführen. Diese Situation wird mit mehreren IF...ELSE IF Anweisungen behandelt.

In diesem Beispiel werden alle Ausdrücke von oben nach unten ausgewertet. Sobald ein Ausdruck als wahr ausgewertet wird, wird der Code in diesem Block ausgeführt. Wenn kein Ausdruck als wahr ausgewertet wird, wird nichts ausgeführt.

IF (1 = 1 + 1)
BEGIN
    PRINT 'First If Condition'
END 
ELSE IF (1 = 2)
BEGIN
    PRINT 'Second If Else Block'
END
ELSE IF (1 = 3)
BEGIN
    PRINT 'Third If Else Block'
END
ELSE IF (1 = 1)      --<-- This is True
BEGIN
    PRINT 'Last Else Block'  --<-- Only this statement will be printed
END


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow