Ce navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
Télécharger Microsoft Edge
Plus d’informations sur Internet Explorer et Microsoft Edge
S’applique à :
SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Point de terminaison analytique SQL dans Microsoft Fabric
Entrepôt dans Microsoft Fabric
Impose les conditions d'exécution d'une instruction Transact-SQL. L’instruction Transact-SQL (
sql_statement
) qui suit
Boolean_expression
est exécutée si
Boolean_expression
a la valeur TRUE. Le mot clé facultatif ELSE est une instruction Transact-SQL alternative exécutée lorsque la valeur renvoyée par
Boolean_expression
est FALSE ou NULL.
Conventions de la syntaxe Transact-SQL
Syntaxe
IF Boolean_expression
{ sql_statement | statement_block }
[ ELSE
{ sql_statement | statement_block } ]
Remarque
Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 (12.x) et versions antérieures, consultez la Documentation sur les versions antérieures.
Arguments
Boolean_expression
Expression qui renvoie TRUE ou FALSE. Si Boolean_expression contient une instruction SELECT, cette dernière doit être mise entre parenthèses.
{ sql_statement | statement_block }
Toute instruction ou tout groupe d'instructions Transact-SQL valide tel que défini dans un bloc d'instructions. Pour définir un bloc (traitement) d'instructions, utilisez les mots clé BEGIN et END du langage de contrôle de flux. Bien que toutes les instructions Transact-SQL soient valides à l’intérieur d’un bloc BEGIN…END, certaines instructions Transact-SQL ne doivent pas être regroupées dans un même lot (bloc d’instructions).
Types des résultats
Booléen
Exemples
R. Utilisation d'une expression booléenne simple
L'exemple suivant comprend une expression booléenne simple (1=1
) ayant la valeur true. Par conséquent, il imprime la première instruction.
IF 1 = 1 PRINT 'Boolean_expression is true.'
ELSE PRINT 'Boolean_expression is false.' ;
L'exemple suivant comprend une expression booléenne simple (1=2
) ayant la valeur false. Par conséquent, il imprime la seconde instruction.
IF 1 = 2 PRINT 'Boolean_expression is true.'
ELSE PRINT 'Boolean_expression is false.' ;
B. Utilisation d'une requête dans le cadre d'une expression booléenne
L'exemple suivant exécute une requête dans le cadre de l'expression booléenne. Étant donné que 10 vélos de la table Product
répondent à la clause WHERE
, la première instruction print s'exécute. Remplacez > 5
par > 15
pour voir comment la deuxième partie de l'instruction pourrait s'exécuter.
USE AdventureWorks2022;
(SELECT COUNT(*) FROM Production.Product WHERE Name LIKE 'Touring-3000%' ) > 5
PRINT 'There are more than 5 Touring-3000 bicycles.'
ELSE PRINT 'There are 5 or less Touring-3000 bicycles.' ;
C. Utilisation d'un bloc d'instructions
L'exemple suivant exécute une requête dans le cadre de l'expression booléenne, puis exécute des blocs d'instructions légèrement différents selon le résultat de l'expression booléenne. Chaque bloc d'instructions commence par BEGIN
et se termine par END
.
USE AdventureWorks2022;
DECLARE @AvgWeight DECIMAL(8,2), @BikeCount INT
(SELECT COUNT(*) FROM Production.Product WHERE Name LIKE 'Touring-3000%' ) > 5
BEGIN
SET @BikeCount =
(SELECT COUNT(*)
FROM Production.Product
WHERE Name LIKE 'Touring-3000%');
SET @AvgWeight =
(SELECT AVG(Weight)
FROM Production.Product
WHERE Name LIKE 'Touring-3000%');
PRINT 'There are ' + CAST(@BikeCount AS VARCHAR(3)) + ' Touring-3000 bikes.'
PRINT 'The average weight of the top 5 Touring-3000 bikes is ' + CAST(@AvgWeight AS VARCHAR(8)) + '.';
BEGIN
SET @AvgWeight =
(SELECT AVG(Weight)
FROM Production.Product
WHERE Name LIKE 'Touring-3000%' );
PRINT 'Average weight of the Touring-3000 bikes is ' + CAST(@AvgWeight AS VARCHAR(8)) + '.' ;
END ;
D. Utilisation d'instructions IF...ELSE imbriquées
L’exemple suivant montre comment une instruction IF ... ELSE peut s’imbriquer dans une autre. Définissez la variable @Number
à 5
, 50
et 500
pour tester chaque instruction.
DECLARE @Number INT;
SET @Number = 50;
IF @Number > 100
PRINT 'The number is large.';
BEGIN
IF @Number < 10
PRINT 'The number is small.';
PRINT 'The number is medium.';
END ;
Exemples : Azure Synapse Analytics et Analytics Platform System (PDW)
E. Utilisation d’une requête dans le cadre d’une expression booléenne
L’exemple suivant utilise IF...ELSE
pour déterminer quelle réponse donner à l’utilisateur entre deux réponses, en fonction du poids d’un élément dans la table DimProduct
.
-- Uses AdventureWorks
DECLARE @maxWeight FLOAT, @productKey INTEGER
SET @maxWeight = 100.00
SET @productKey = 424
IF @maxWeight <= (SELECT Weight FROM DimProduct WHERE ProductKey=@productKey)
(SELECT @productKey, EnglishDescription, Weight, 'This product is too heavy to ship and is only available for pickup.' FROM DimProduct WHERE ProductKey=@productKey)
(SELECT @productKey, EnglishDescription, Weight, 'This product is available for shipping or pickup.' FROM DimProduct WHERE ProductKey=@productKey)
Voir aussi
ALTER TRIGGER (Transact-SQL)
Langage de contrôle de flux (Transact-SQL)
CREATE TRIGGER (Transact-SQL)
IF...ELSE (Transact-SQL)
Bientôt disponible : tout au long de 2024, nous allons éliminer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d'informations, consultez : https://aka.ms/ContentUserFeedback.
Envoyer et afficher des commentaires pour
Ce produit