Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
S’applique à :SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Point de terminaison d’analytique SQL dans Microsoft Fabric
Entrepôt dans Microsoft Fabric
Base de données SQL dans Microsoft Fabric
Impose les conditions d'exécution d'une instruction Transact-SQL. L’instruction Transact-SQL (. Le mot clé facultatif ELSE est une autre instruction Transact-SQL exécutée lorsque boolean_expression prend FALSE la valeur ou NULL.
Conventions de la syntaxe Transact-SQL
Syntax
IF boolean_expression
{ sql_statement | statement_block }
[ ELSE
{ sql_statement | statement_block } ]
Arguments
boolean_expression
Expression qui renvoie TRUE ou FALSE. Si le boolean_expression contient une SELECT instruction, l’instruction SELECT doit être placée entre parenthèses.
{ sql_statement | statement_block }
Toute instruction Transact-SQL valide ou regroupement d’instructions tel que défini avec un bloc d’instructions. Pour définir un bloc d’instructions (lot), utilisez les mots clés BEGIN du langage de contrôle de flux et END. Bien que toutes les instructions Transact-SQL soient valides dans un BEGIN...END bloc, certaines instructions Transact-SQL ne doivent pas être regroupées dans le même lot (bloc d’instructions).
Types de retour
Boolean
Examples
Les exemples de code de cet article utilisent les bases de données d'exemple AdventureWorks2025 ou AdventureWorksDW2025, que vous pouvez télécharger à partir de la page d'accueil Microsoft SQL Server Samples and Community Projects.
A. Utiliser une expression booléenne
L’exemple suivant a une expression booléenne (1 = 1) qui est vraie et imprime par conséquent la première instruction.
IF 1 = 1 PRINT 'Boolean expression is true.'
ELSE PRINT 'Boolean expression is false.';
L’exemple suivant a une expression booléenne (1 = 2) qui est false, et imprime donc la deuxième instruction.
IF 1 = 2 PRINT 'Boolean expression is true.'
ELSE PRINT 'Boolean expression is false.';
GO
B. Utiliser 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é qu’il existe 10 vélos dans le Product tableau qui répondent à la condition dans la WHERE clause, la première instruction d’impression s’exécute. Vous pouvez passer > 5 à > 15, pour voir comment la deuxième partie de l’instruction peut s’exécuter.
USE AdventureWorks2022;
GO
IF (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.';
GO
C. Utiliser 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;
GO
DECLARE @AvgWeight DECIMAL(8, 2),
@BikeCount INT
IF (
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)) + '.';
END
ELSE
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;
GO
D. Utiliser l’if imbriqué... Instructions ELSE
L’exemple suivant montre comment une IF...ELSE instruction peut être imbriquée à l’intérieur d’une autre. Définissez la @Number variable sur 5, 50et 500, pour tester chaque instruction.
DECLARE @Number INT;
SET @Number = 50;
IF @Number > 100
PRINT 'The number is large.';
ELSE
BEGIN
IF @Number < 10
PRINT 'The number is small.';
ELSE
PRINT 'The number is medium.';
END;
GO
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 lequel de deux réponses pour afficher l’utilisateur, en fonction du poids d’un élément dans la table de la DimProductAdventureWorksDW2012 base de données.
DECLARE @maxWeight FLOAT, @productKey INT;
SET @maxWeight = 100.00;
SET @productKey = 424;
IF @maxWeight <= (
SELECT [Weight]
FROM DimProduct
WHERE ProductKey = @productKey;
)
BEGIN
SELECT @productKey,
EnglishDescription,
[Weight],
'This product is too heavy to ship and is only available for pickup.'
FROM DimProduct
WHERE ProductKey = @productKey;
END
ELSE
BEGIN
SELECT @productKey,
EnglishDescription,
[Weight],
'This product is available for shipping or pickup.'
FROM DimProduct
WHERE ProductKey = @productKey;
END