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 che segue una parola chiave IF e le relative condizioni viene eseguita se le condizioni vengono soddisfatte, ovvero quando l'espressione booleana restituisce TRUE. La parola chiave facoltativa ELSE introduce un'altra istruzione Transact-SQL eseguita quando non viene soddisfatta la condizione IF, ovvero quando l'espressione booleana restituisce FALSE.
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 l'espressione booleana include un'istruzione SELECT, tale istruzione deve essere racchiusa tra parentesi.
{ sql_statement| statement_block }
Qualsiasi istruzione o raggruppamento di istruzioni Transact-SQL definito usando un blocco di istruzioni. Le condizioni IF o ELSE possono influire sulle prestazioni di una sola istruzione Transact-SQL, a meno che non venga usato un blocco di istruzioni.
Per definire un blocco di istruzioni, utilizzare le parole chiave per il controllo di flusso BEGIN ed END.
Osservazioni:
È possibile utilizzare un costrutto IF...ELSE in batch, stored procedure e query ad hoc. In caso di utilizzo in una stored procedure, questo costrutto viene in genere utilizzato per verificare l'esistenza di parametri.
È possibile nidificare condizioni IF dopo un'altra condizione IF o una parola chiave ELSE. Il limite del numero di livelli di nidificazione dipende dalla memoria disponibile.
Esempio
IF DATENAME(weekday, GETDATE()) IN (N'Saturday', N'Sunday')
SELECT 'Weekend';
ELSE
SELECT 'Weekday';
Per altri esempi, vedere ELSE (IF...ELSE) (Transact-SQL).
Esempi: Azure Synapse Analytics e Piattaforma di strumenti analitici (PDW)
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 AdventureWorksDW
DECLARE @maxWeight FLOAT, @productKey INTEGER
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
Vedi anche
INIZIARE... END (Transact-SQL)
FINE (BEGIN... END) (Transact-SQL)
SELECT (Transact-SQL)
WHILE (Transact-SQL)
CASE (Transact-SQL)
Elementi del linguaggio per il controllo di flusso (Transact-SQL)ELSE (IF...ELSE) (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