Istruzione condizionale IF…ELSE di SQL Server: esempio di query Select T-SQL
Perché hai bisogno di dichiarazioni condizionali?
Le istruzioni condizionali nel server SQL aiutano a definire logiche e azioni diverse per condizioni diverse. Consente di eseguire diverse azioni in base alle condizioni definite all'interno della dichiarazione. Nella vita reale, esegui molte azioni in base al risultato di qualche altra attività o situazione.
Alcuni esempi in tempo reale di istruzioni case SQL sono:
- Se domani piove, pianificherò un viaggio.
- Se i biglietti aerei costano meno di $ 400 dalla mia città, allora andrò in vacanza in Europa, altrimenti preferirò qualche località turistica vicina.
Qui puoi vedere che un'azione, come Road trip sopra, lo è condizionatamente dipendente sull’esito di un’altra attività che è “se pioverà o no domani!”
Allo stesso modo, MS SQL offre anche la possibilità di eseguire l'istruzione T-SQL in modo condizionale.
Istruzione IF… Else in SQL Server
In MS SQL, SE ALTRO è un tipo di Dichiarazione condizionale.
Qualsiasi istruzione T-SQL può essere eseguita in modo condizionale utilizzando SE ALTRO.
La figura seguente spiega IF ELSE nel server SQL:
- Se la condizione corrisponde a Vero, quindi istruzioni T-SQL seguite da IF verrà eseguita la condizione nel server SQL.
- Se la condizione corrisponde a falso, quindi istruzioni T-SQL seguite da ELSE la parola chiave verrà eseguita.
- Una volta eseguite le istruzioni IF T-SQL o ELSE T-SQL, l'esecuzione delle altre istruzioni T-SQL incondizionate continua.
IF… Else Sintassi e regole in SQL
Sintassi:
IF <Condition> {Statement | Block_of_statement} [ ELSE {Statement | Block_of_statement}]
Regole:
- La condizione dovrebbe essere Espressione booleana, Cioè, la condizione restituisce un valore booleano quando valutata.
- Istruzione IF ELSE in SQL può gestire in modo condizionale una singola istruzione T-SQL o un blocco di istruzioni T-SQL.
- Il blocco di istruzioni dovrebbe iniziare con la parola chiave BEGIN e chiudersi con la parola chiave END.
- L'uso di BEGIN ed END aiuta il server SQL a identificare il blocco di istruzioni che deve essere eseguito e a separarlo dal resto delle istruzioni T-SQL che non fanno parte del blocco IF…ELSE T-SQL.
- ALTRO è facoltativo.
IF…ELSE con il solo valore numerico nell'espressione booleana.
Condizione: VERO
IF (1=1) PRINT 'IF STATEMENT: CONDITION IS TRUE' ELSE PRINT 'ELSE STATEMENT: CONDITION IS FALSE'
Condizione: FALSO
IF (1=2) PRINT 'IF STATEMENT: CONDITION IS TRUE' ELSE PRINT 'ELSE STATEMENT: CONDITION IS FALSE'
Assunzione: Supponiamo di avere la tabella as "Guru99" con due colonne e quattro righe come mostrato di seguito:
Noi useremo "Guru99" tabella in ulteriori esempi
IF…ELSE con la variabile nell'espressione booleana.
Condizione: VERO
DECLARE @Course_ID INT = 4 IF (@Course_ID = 4) Select * from Guru99 where Tutorial_ID = 4 ELSE Select * from Guru99 where Tutorial_ID != 4
Condizione: FALSO
DECLARE @Course_ID INT = 4 IF (@Course_ID != 4) Select * from Guru99 where Tutorial_ID = 4 ELSE Select * from Guru99 where Tutorial_ID != 4
SE...ALTRIMENTI con Inizio Fine
Condizione: VERO
DECLARE @Course_ID INT = 2 IF (@Course_ID <=2) BEGIN Select * from Guru99 where Tutorial_ID = 1 Select * from Guru99 where Tutorial_ID = 2 END ELSE BEGIN Select * from Guru99 where Tutorial_ID = 3 Select * from Guru99 where Tutorial_ID = 4 END
Condizione: FALSO
DECLARE @Course_ID INT = 2 IF (@Course_ID >=3) BEGIN Select * from Guru99 where Tutorial_ID = 1 Select * from Guru99 where Tutorial_ID = 2 END ELSE BEGIN Select * from Guru99 where Tutorial_ID = 3 Select * from Guru99 where Tutorial_ID = 4 END
Dichiarazione IF con No Else
È possibile utilizzare un'istruzione IF in SQL senza una parte ELSE. Ricorda che abbiamo affermato che la parte ELSE è facoltativa. Per esempio:
DECLARE @Course_ID INT = 2 IF (@Course_ID <=2) Select * from Guru99 where Tutorial_ID = 1
Stampa quanto segue:
L'esecuzione della condizione falsa non darà alcun output. Considera la seguente query
DECLARE @Course_ID INT = 2 IF (@Course_ID <=0) Select * from Guru99 where Tutorial_ID = 1
Il risultato è
Istruzioni IF…Else nidificate
A differenza di altri linguaggi di programmazione, non è possibile aggiungere un'istruzione ELSE IF all'interno di una condizione IF ELSE in SQL. Questo è il motivo per cui puoi nidificare IF ELSE nelle istruzioni di query SQL. È dimostrato di seguito:
DECLARE @age INT; SET @age = 60; IF @age < 18 PRINT 'underage'; ELSE BEGIN IF @age < 50 PRINT 'You are below 50'; ELSE PRINT 'Senior'; END;
- In questo esempio, il codice stamperà minorenni se il valore di @age è inferiore a 18.
- In caso contrario, verrà eseguita la parte ELSE. La parte ElSE ha un IF…ELSE nidificato.
- Se il valore di @age è inferiore a 50, verrà stampato Hai meno di 50 anni. Se nessuna di queste condizioni è vera, il codice stamperà Senior.
Sintesi
- Le variabili sono l'oggetto che funge da segnaposto.
- Il blocco di istruzioni dovrebbe iniziare con la parola chiave BEGIN e chiudersi con la parola chiave END.
- Else è facoltativo da utilizzare nell'istruzione IF… ELSE
- È anche possibile nidificare la condizione SQL IF ELSE in un'altra istruzione IF…ELSE.