IF...ELSE (Transact-SQL)
Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsPDW (Analytics Platform System)Ponto de extremidade de SQL no Microsoft FabricWarehouse no Microsoft Fabric
Impõe condições na execução de uma instrução Transact-SQL. A instrução Transact-SQL que aparece depois de uma palavra-chave IF e a condição dela será executada se a condição for satisfeita: a expressão booliana retorna TRUE. A palavra-chave opcional ELSE introduz outra instrução Transact-SQL que será executada quando a condição IF não for atendida: a expressão booliana retorna FALSE.
Convenções de sintaxe de Transact-SQL
Sintaxe
IF Boolean_expression
{ sql_statement | statement_block }
[ ELSE
{ sql_statement | statement_block } ]
Observação
Para exibir a sintaxe do Transact-SQL para o SQL Server 2014 (12.x) e versões anteriores, confira a Documentação das versões anteriores.
Argumentos
Boolean_expression
É uma expression que retorna TRUE ou FALSE. Se a expressão booliana contiver uma instrução SELECT, a instrução SELECT deverá ser incluída entre parênteses.
{ sql_statement| statement_block }
É qualquer instrução ou agrupamento de instruções Transact-SQL, conforme definido por meio de um bloco de instruções. A menos que um bloco de instruções seja usado, a condição IF ou ELSE poderá afetar o desempenho de somente uma instrução Transact-SQL.
Para definir um bloco de instruções, use as palavras-chave BEGIN e END de controle de fluxo.
Comentários
Uma construção IF...ELSE pode ser usada em lotes, em procedimentos armazenados e em consultas ad hoc. Quando essa construção é usada em um procedimento armazenado, ela normalmente é usada para testar a existência de algum parâmetro.
Os testes IF podem ser aninhados depois de outro IF ou seguindo um ELSE. O limite do número de níveis aninhados depende da memória disponível.
Exemplo
IF DATENAME(weekday, GETDATE()) IN (N'Saturday', N'Sunday')
SELECT 'Weekend';
ELSE
SELECT 'Weekday';
Para obter mais exemplos, confira ELSE (IF...ELSE) (Transact-SQL).
Exemplos: Azure Synapse Analytics e PDW (Analytics Platform System)
O exemplo a seguir usa IF...ELSE
para determinar qual das duas respostas será mostrada ao usuário, com base no peso de um item na tabela 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
Consulte Também
BEGIN...END (Transact-SQL)
END (BEGIN...END) (Transact-SQL)
SELECT (Transact-SQL)
WHILE (Transact-SQL)
CASE (Transact-SQL)
Linguagem de controle de fluxo (Transact-SQL)ELSE (IF... ELSE) (Transact-SQL)
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de