Szukaj…


Pojedyncza instrukcja IF

Podobnie jak większość innych języków programowania, T-SQL obsługuje również instrukcje IF..ELSE.

Na przykład w poniższym przykładzie 1 = 1 to wyrażenie, które BEGIN..END wartość True, a formant wchodzi do bloku BEGIN..END , a instrukcja Print wypisuje ciąg 'One is equal to One'

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

Wiele instrukcji IF

Możemy użyć wielu instrukcji IF, aby sprawdzić wiele wyrażeń całkowicie niezależnie od siebie.

W poniższym przykładzie każde wyrażenie IF jest oceniane i jeśli to prawda, wykonywany jest kod w bloku BEGIN...END . W tym konkretnym przykładzie pierwsze i trzecie wyrażenie jest prawdziwe i zostaną wykonane tylko te instrukcje print.

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

Pojedyncza instrukcja IF..ELSE

W pojedynczej instrukcji IF..ELSE , jeśli wyrażenie ma wartość True w instrukcji IF , kontrolka wchodzi do pierwszego bloku BEGIN..END i wykonywany jest tylko kod w tym bloku, blok Else jest po prostu ignorowany.

Z drugiej strony, jeśli wyrażenie ma wartość False blok ELSE BEGIN..END zostanie wykonany, a kontrola nigdy nie wejdzie w pierwszy blok BEGIN..END .

W poniższym przykładzie wyrażenie będzie miało wartość false, a blok Else zostanie wykonany, drukując ciąg '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

Wiele IF ... ELSE z końcowymi instrukcjami ELSE

Jeśli mamy wiele instrukcji IF...ELSE IF , ale chcemy również wykonać jakiś fragment kodu, jeśli żadne wyrażenie nie zostanie ocenione na Prawda, wówczas możemy po prostu dodać końcowy blok ELSE , który zostanie wykonany tylko wtedy, gdy żaden z IF lub ELSE IF wyrażenia są oceniane jako prawda.

W poniższym przykładzie żadne z wyrażeń IF ani ELSE IF ma wartości True, dlatego wykonywany jest tylko blok ELSE i wypisywany jest komunikat '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

Wiele instrukcji IF ... ELSE

Najczęściej musimy sprawdzać wiele wyrażeń i podejmować określone działania na podstawie tych wyrażeń. Ta sytuacja jest obsługiwana za pomocą wielu instrukcji IF...ELSE IF .

W tym przykładzie wszystkie wyrażenia są oceniane od góry do dołu. Gdy tylko wyrażenie ma wartość true, wykonywany jest kod w tym bloku. Jeśli żadne wyrażenie nie zostanie ocenione jako prawdziwe, nic nie zostanie wykonane.

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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow