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


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow