IF...ELSE (Transact-SQL)
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
Azure Synapse Analytics
PDW (Analytics Platform System)
Ponto de extremidade de SQL no Microsoft Fabric
Warehouse no Microsoft Fabric
Impõe condições na execução de uma instrução Transact-SQL. A instrução Transact-SQL que segue uma IF
palavra-chave e sua condição é executada se a condição for satisfeita: a expressão booleana retornará TRUE
. A palavra-chave opcional ELSE
introduz outra instrução Transact-SQL que é executada quando a IF
condição não é satisfeita: a expressão booleana 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 expressão que retorna TRUE
ou FALSE
. Se a expressão booleana contiver uma SELECT
instrução, a SELECT
instrução deverá ser colocada entre parênteses.
{ sql_statement | statement_block }
Qualquer instrução Transact-SQL ou agrupamento de instruções conforme definido usando um bloco de instrução. A menos que um bloco de instrução seja usado, a IF
condição ou ELSE
pode afetar o desempenho de apenas uma instrução Transact-SQL.
Para definir um bloco de instrução, use as palavras-chave BEGIN
controle de fluxo e END
.
Comentários
Uma IF...ELSE
construção pode ser usada em lotes, em procedimentos armazenados e em consultas ad hoc. Quando essa construção é usada em um procedimento armazenado, geralmente é para testar a existência de algum parâmetro.
IF
os testes podem ser aninhados após outro IF
ou após um ELSE
arquivo . O limite do número de níveis aninhados depende da memória disponível.
Exemplos
IF DATENAME(weekday, GETDATE()) IN (N'Saturday', N'Sunday')
SELECT 'Weekend';
ELSE
SELECT 'Weekday';
Para obter mais exemplos, consulte ELSE (SE... ELSE).
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 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;
Conteúdo relacionado
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários