ELSE (IF...ELSE) (Transact-SQL)
Si applica a:SQL Server database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics AnalyticsPlatform System (PDW)SQL analytics endpoint in Microsoft FabricWarehouse in Microsoft Fabric
Impone le condizioni per l'esecuzione di un'istruzione Transact-SQL. L'istruzione Transact-SQL (sql_statement) che segue Boolean_expressionviene eseguita se Boolean_expression restituisce TRUE. La parola chiave facoltativa ELSE rappresenta un'istruzione Transact-SQL alternativa che viene eseguita quando l'argomento Boolean_expression restituisce FALSE o NULL.
Convenzioni di sintassi Transact-SQL
Sintassi
IF Boolean_expression
{ sql_statement | statement_block }
[ ELSE
{ sql_statement | statement_block } ]
Nota
Per visualizzare la sintassi Transact-SQL per SQL Server 2014 (12.x) e versioni precedenti, vedere la documentazione delle versioni precedenti.
Argomenti
Boolean_expression
Espressione che restituisce TRUE o FALSE. Se Boolean_expression contiene un'istruzione SELECT, tale istruzione deve essere racchiusa tra parentesi.
{ sql_statement | statement_block }
Qualsiasi istruzione o raggruppamento di istruzioni Transact-SQL valide definito con un blocco di istruzioni. Per definire un blocco di istruzioni (batch), utilizzare le parole chiave del linguaggio per il controllo di flusso BEGIN ed END. Sebbene tutte le istruzioni Transact-SQL siano valide nell'ambito di un blocco BEGIN...END, alcune istruzioni Transact-SQL non devono essere raggruppate nello stesso batch (blocco di istruzioni).
Tipi restituiti
Boolean
Esempi
R. Esecuzione di un'espressione booleana
Nell'esempio seguente è presente un'espressione booleana semplice (1=1
) con valore true e di conseguenza viene stampata la prima istruzione.
IF 1 = 1 PRINT 'Boolean_expression is true.'
ELSE PRINT 'Boolean_expression is false.' ;
Nell'esempio seguente è presente un'espressione booleana semplice (1=2
) con valore false e di conseguenza viene stampata la seconda istruzione.
IF 1 = 2 PRINT 'Boolean_expression is true.'
ELSE PRINT 'Boolean_expression is false.' ;
GO
B. Utilizzo di una query come parte di un'espressione booleana
Nell'esempio seguente viene eseguita una query come parte dell'espressione booleana. Poiché nella tabella Product
sono presenti 10 biciclette che soddisfano la clausola WHERE
, verrà eseguita la prima istruzione di stampa. Modificare > 5
in > 15
per ottenere il modo in cui potrebbe essere eseguita la seconda parte dell'istruzione.
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. Utilizzo di un blocco di istruzioni
Nell'esempio seguente viene eseguita una query come parte dell'espressione booleana e successivamente vengono eseguiti blocchi di istruzioni leggermente diversi in base al risultato dell'espressione booleana. Ogni blocco di istruzioni inizia con BEGIN
e termina con 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. Utilizzo di istruzioni IF...ELSE nidificate
L'esempio seguente mostra come un IF ... L'istruzione EL edizione Standard può essere annidata all'interno di un'altra. Impostare la variabile @Number
su 5
, 50
e 500
per eseguire il test di ogni istruzione.
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
Esempi: Azure Synapse Analytics e Piattaforma di strumenti analitici (PDW)
B. Uso di una query come parte di un'espressione booleana
L'esempio seguente usa IF...ELSE
per determinare quale delle due risposte visualizzare all'utente, in base al peso di un elemento nella tabella 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)
ELSE
(SELECT @productKey, EnglishDescription, Weight, 'This product is available for shipping or pickup.' FROM DimProduct WHERE ProductKey=@productKey)
Vedi anche
ALTER TRIGGER (Transact-SQL)
Control-of-Flow Language (Transact-SQL)
CREATE TRIGGER (Transact-SQL)
SE... EL edizione Standard (Transact-SQL)
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per