IF...ELSE (Transact-SQL)
Impose les conditions d'exécution d'une instruction Transact-SQL. L'instruction Transact-SQL qui suit le mot clé IF et sa condition est exécutée si la condition est remplie, c'est-à-dire lorsque l'expression booléenne retourne la valeur TRUE. Le mot clé facultatif ELSE introduit une autre instruction Transact-SQL qui est exécutée lorsque la condition IF n'est pas remplie : l'expression booléenne retourne alors la valeur FALSE.
Conventions de la syntaxe Transact-SQL
Syntaxe
IF Boolean_expression
{ sql_statement | statement_block }
[ ELSE
{ sql_statement | statement_block } ]
Arguments
Boolean_expression
Expression qui renvoie TRUE ou FALSE. Si l'expression booléenne contient une instruction SELECT, cette dernière doit être mise entre parenthèses.{ sql_statement| statement_block }
Représente toute instruction ou tout groupe d'instructions Transact-SQL tel que défini dans un bloc d'instructions. À moins que vous n'utilisiez un bloc d'instructions, la condition IF ou ELSE ne peut affecter les performances que d'une seule instruction Transact-SQL.Pour définir un bloc d'instructions, utilisez les mots clés de contrôle de flux BEGIN et END.
Notes
Une construction IF...ELSE peut être utilisée dans des traitements d'instructions, des procédures stockées et des requêtes ad hoc. Lorsque cette construction est utilisée dans une procédure stockée, elle est souvent utilisée pour rechercher la présence de certains paramètres.
Les tests de la condition IF peuvent être imbriqués après une autre condition IF ou après une condition ELSE. La limite concernant le nombre de niveaux imbriqués dépend de la mémoire disponible.
Exemple
L'exemple suivant utilise IF…ELSE avec le résultat de la procédure stockée uspGetList. Cette procédure stockée est identifiée dans Créer une procédure stockée. Dans cet exemple, la procédure stockée renvoie une liste de vélos d'un prix inférieur à 700$. La première instruction PRINT est alors exécutée.
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)))+'.'
Pour obtenir d'autres exemples, consultez ELSE (IF...ELSE) (Transact-SQL).