Microsoft SQL Server
JEŚLI INACZEJ
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