IF...ELSE (Transact-SQL)
Impone le condizioni per l'esecuzione di un'istruzione Transact-SQL. L'istruzione Transact-SQL che segue una parola chiave IF e le relative condizioni viene eseguita se le condizioni vengono soddisfatte, ovvero quando l'espressione booleana restituisce TRUE. La parola chiave facoltativa ELSE introduce un'altra istruzione Transact-SQL eseguita quando non viene soddisfatta la condizione IF, ovvero quando l'espressione booleana restituisce FALSE.
Convenzioni della sintassi Transact-SQL
Sintassi
IF Boolean_expression
{ sql_statement | statement_block }
[ ELSE
{ sql_statement | statement_block } ]
Argomenti
- Boolean_expression
Espressione che restituisce TRUE o FALSE. Se l'espressione booleana include un'istruzione SELECT, tale istruzione deve essere racchiusa tra parentesi.
{ sql_statement| statement_block }
Qualsiasi istruzione o gruppo di istruzioni Transact-SQL valido definito tramite un blocco di istruzioni. Le condizioni IF o ELSE possono influire sulle prestazioni di una sola istruzione Transact-SQL, a meno che non venga utilizzato un blocco di istruzioni.Per definire un blocco di istruzioni, utilizzare le parole chiave per il controllo di flusso BEGIN ed END.
Osservazioni
È possibile utilizzare un costrutto IF...ELSE in batch, stored procedure e query ad hoc. In caso di utilizzo in una stored procedure, questo costrutto viene in genere utilizzato per verificare l'esistenza di parametri.
È possibile nidificare condizioni IF dopo un'altra condizione IF o una parola chiave ELSE. Il limite del numero di livelli di nidificazione dipende dalla memoria disponibile.
Esempi
Nell'esempio seguente viene utilizzato il costrutto IF…ELSE
con l'output della stored procedure uspGetList
. Questa stored procedure viene definita in Creazione di stored procedure. Nell'esempio seguente la stored procedure restituisce una lista di biciclette il cui prezzo è minore di $700
. Questa condizione determina l'esecuzione dell'istruzione PRINT
.
DECLARE @compareprice money, @cost money
EXECUTE Production.uspGetList '%Bikes%', 700,
@compareprice OUT,
@cost OUTPUT
IF @cost <= @compareprice
BEGIN
PRINT 'These products can be purchased for less than
$'+RTRIM(CAST(@compareprice AS varchar(20)))+'.'
END
ELSE
PRINT 'The prices for all products in this category exceed
$'+ RTRIM(CAST(@compareprice AS varchar(20)))+'.'
Vedere anche
Riferimento
BEGIN...END (Transact-SQL)
ELSE (IF...ELSE) (Transact-SQL)
END (BEGIN...END) (Transact-SQL)
SELECT (Transact-SQL)
WHILE (Transact-SQL)
CASE (Transact-SQL)
Elementi del linguaggio per il controllo di flusso (Transact-SQL)
Altre risorse
Utilizzo di CASE
Utilizzo di IF...ELSE