IF...ELSE (Transact-SQL)
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL analytics endpoint in Microsoft Fabric Warehouse in Microsoft Fabric
Impose les conditions d'exécution d'une instruction Transact-SQL. L’instruction Transact-SQL qui suit un IF
mot clé et sa condition est exécutée si la condition est satisfaite : l’expression booléenne retourne TRUE
. Le mot clé facultatif ELSE
introduit une autre instruction Transact-SQL exécutée lorsque la IF
condition n’est pas satisfaite : l’expression booléenne retourne 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 SELECT
instruction, l’instruction SELECT
doit être placée entre parenthèses.
{ sql_statement | statement_block }
Toute instruction Transact-SQL ou regroupement d’instructions tel que défini à l’aide d’un bloc d’instructions. Sauf si un bloc d’instructions est utilisé, la ou ELSE
la IF
condition peut affecter les performances d’une seule instruction Transact-SQL.
Pour définir un bloc d’instructions, utilisez les mots clés BEGIN
de contrôle de flux et END
.
Notes
Une IF...ELSE
construction peut être utilisée dans des lots, dans des procédures stockées et dans des requêtes ad hoc. Lorsque cette construction est utilisée dans une procédure stockée, il s’agit généralement de tester l’existence d’un paramètre.
IF
les tests peuvent être imbriqués après un autre IF
ou après un ELSE
. La limite concernant le nombre de niveaux imbriqués dépend de la mémoire disponible.
Exemples
IF DATENAME(weekday, GETDATE()) IN (N'Saturday', N'Sunday')
SELECT 'Weekend';
ELSE
SELECT 'Weekday';
Pour plus d’exemples, consultez ELSE (IF... ELSE).
Exemples : Azure Synapse Analytics et Analytics Platform System (PDW)
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 AdventureWorksDW
DECLARE @maxWeight FLOAT, @productKey INT;
SET @maxWeight = 100.00;
SET @productKey = 424;
IF @maxWeight <= (
SELECT Weight
FROM DimProduct
WHERE ProductKey = @productKey
)
SELECT @productKey AS ProductKey,
EnglishDescription,
Weight,
'This product is too heavy to ship and is only available for pickup.' AS ShippingStatus
FROM DimProduct
WHERE ProductKey = @productKey;
ELSE
SELECT @productKey AS ProductKey,
EnglishDescription,
Weight,
'This product is available for shipping or pickup.' AS ShippingStatus
FROM DimProduct
WHERE ProductKey = @productKey;