Microsoft SQL Server
SE ALTRO
Ricerca…
Istruzione IF singola
Come la maggior parte degli altri linguaggi di programmazione, T-SQL supporta anche le istruzioni IF..ELSE.
Ad esempio nell'esempio seguente 1 = 1
è l'espressione, che BEGIN..END
True e il controllo immette nel blocco BEGIN..END
e l'istruzione Print stampa la stringa 'One is equal to One'
IF ( 1 = 1) --<-- Some Expression
BEGIN
PRINT 'One is equal to One'
END
Più dichiarazioni IF
Possiamo utilizzare più istruzioni IF per controllare più espressioni totalmente indipendenti l'una dall'altra.
Nell'esempio seguente, viene valutata l'espressione di ogni istruzione IF
e, se è vero, il codice all'interno del blocco BEGIN...END
viene eseguito. In questo particolare esempio, la prima e la terza espressione sono vere e solo le istruzioni di stampa verranno eseguite.
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
Singola dichiarazione IF..ELSE
In una singola istruzione IF..ELSE
, se l'espressione IF..ELSE
True BEGIN..END
IF
il controllo entra nel primo blocco BEGIN..END
e solo il codice all'interno di quel blocco viene eseguito, il blocco Else viene semplicemente ignorato.
D'altra parte se l'espressione ELSE BEGIN..END
False
il blocco ELSE BEGIN..END
viene eseguito e il controllo non inserisce mai il primo blocco BEGIN..END
.
Nell'esempio seguente l'espressione valuterà su false e verrà eseguito il blocco Else stampando la stringa '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
Più IF ... ELSE con dichiarazioni ELSE finali
Se abbiamo più istruzioni IF...ELSE IF
ma vogliamo anche eseguire qualche parte di codice se nessuna delle espressioni viene valutata su True, allora possiamo semplicemente aggiungere un blocco ELSE
finale che viene eseguito solo se nessuna delle IF
oppure le espressioni ELSE IF
vengono valutate su true.
Nell'esempio seguente nessuna espressione IF
o ELSE IF
è True, quindi viene eseguito solo il blocco ELSE
e viene stampato '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
Più istruzioni IF ... ELSE
Più spesso che non abbiamo bisogno di controllare più espressioni e intraprendere azioni specifiche basate su quelle espressioni. Questa situazione viene gestita utilizzando più istruzioni IF...ELSE IF
.
In questo esempio tutte le espressioni sono valutate dall'alto verso il basso. Non appena un'espressione restituisce true, viene eseguito il codice all'interno di quel blocco. Se nessuna espressione viene valutata come vera, non viene eseguito nulla.
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