Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come funziona l'istruzione IF in SQL Server

La maggior parte (probabilmente tutti ) i linguaggi di programmazione includono una qualche forma di IF istruzione che consente ai programmatori di scrivere codice condizionale. Cioè, codice che verrà eseguito solo se una certa condizione è vera.

È un concetto molto semplice. Fondamentalmente funziona così:

"Se questo, fallo."

La maggior parte delle lingue lo chiama semplicemente IF , ma alcuni hanno una loro torsione sul nome (ad esempio, in ColdFusion/CFML, si chiama CFIF ).

In ogni caso, essenzialmente fanno la stessa cosa.

In SQL Server (o più precisamente, il suo linguaggio di programmazione T-SQL) si chiama IF .

Esempio

Ecco un esempio di base per dimostrare come il IF la dichiarazione funziona.

IF 1 < 2 SELECT 'True';

Risultato:

True

In questo caso, l'espressione da valutare è 1 < 2 . È vero che 1 è minore di 2 quindi SELECT l'istruzione è stata eseguita e True è stato restituito.

Tuttavia, se l'espressione è falsa, non accadrà nulla.

L'esempio seguente lo dimostra:

IF 1 > 2 SELECT 'True';

Risultato:

Commands completed successfully.

Tutto ciò che SQL Server mi ha detto è che il comando è stato completato correttamente. Nient'altro è stato restituito, perché nient'altro è stato specificato.

La dichiarazione IF... ELSE

In SQL Server, il IF viene fornito con un ELSE opzionale , che consente di fornire un'alternativa, nel caso in cui l'espressione restituisca false.

Pertanto, è come dire "SE questo, fai questo, ALTRIMENTI, fai questo".

In questo caso, possiamo aggiungere l'opzione ELSE al IF istruzione, in modo che diventi un IF... ELSE dichiarazione.

IF 1 > 2
       SELECT 'True';
ELSE 
       SELECT 'False';

Risultato:

False

Ora otteniamo anche un risultato quando l'espressione è falsa.

Dichiarazioni IF nidificate

Una delle grandi cose di IF dichiarazioni è che puoi annidarli. Cioè, puoi aggiungere più IF affermazioni all'interno di quella originale e altre all'interno di quelle ecc.

Puoi annidare tanti IF affermazioni come preferisci. Sei limitato solo dalla quantità di memoria disponibile.

Ecco un esempio di annidamento di un IF dichiarazione dentro un altro.

DECLARE @bankBalance int = 123;
IF @bankBalance > 100
    IF @bankBalance > 150
        SELECT 'Rich!';
    ELSE
        SELECT 'Wealthy';
ELSE 
    SELECT 'Poor';

Risultato:

Wealthy

IF... ELSE IF Dichiarazioni

Puoi anche usarlo come IF... ELSE IF dichiarazione.

DECLARE @bankBalance int = 123;
IF @bankBalance > 150
    SELECT 'Rich!';
ELSE IF @bankBalance > 100
    SELECT 'Wealthy';
ELSE
    SELECT 'Poor';

Risultato:

Wealthy