Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
Endpoint de SQL Analytics no Microsoft Fabric
Armazém no Microsoft Fabric
Banco de Dados SQL no Microsoft Fabric
Retorna um de dois valores, dependendo de a expressão booliana ser avaliada como true ou false no SQL Server.
Convenções de sintaxe de Transact-SQL
Sintaxe
IIF( boolean_expression, true_value, false_value )
Argumentos
boolean_expression
Uma expressão Booliana válida.
Se esse argumento não for uma expressão booliana, um erro de sintaxe será gerado.
true_value
Valor a ser retornado se boolean_expression for avaliada como verdadeira.
false_value
Valor a ser retornado se boolean_expression for avaliada como falsa.
Tipos de retorno
Retorna o tipo de dados com a precedência mais alta dos tipos em true_value e false_value. Para obter mais informações, confira Precedência de tipo de dados (Transact-SQL).
Comentários
IIF é uma forma abreviada de gravar uma expressão CASE. Avalia a expressão Booliana passada pelo primeiro argumento e retorna qualquer um dos outros dois argumentos com base no resultado da avaliação. Ou seja, o true_value será retornado se a expressão booliana for verdadeira e o false_value será retornado se a expressão booliana for falsa ou desconhecida. true_value e false_value podem ser de qualquer tipo. As mesmas regras que se aplicam à expressão CASE para expressões boolianas, manipulação de nulos e tipos de retorno também se aplicam a IIF. Para obter mais informações, confira CASE (Transact-SQL).
O fato de IIF ser convertido em CASE também tem um impacto sobre outros aspectos do comportamento dessa função. Como as expressões CASE podem ser aninhadas apenas até o nível de 10, as instruções IIF também podem ser aninhadas apenas até o nível máximo de 10. Além disso, IIF é remota para outros servidores como uma expressão CASE semanticamente equivalente, com todos os comportamentos de uma expressão CASE remota.
O IIF não tem suporte em pools de SQL dedicados no Azure Synapse Analytics.
Exemplos
a. Exemplo de IIF simples
DECLARE @a INT = 45, @b INT = 40;
SELECT [Result] = IIF( @a > @b, 'TRUE', 'FALSE' );
Veja a seguir o conjunto de resultados.
Result
--------
TRUE
B. IIF com constantes NULL
SELECT [Result] = IIF( 45 > 30, NULL, NULL );
O resultado dessa instrução é um erro.
C. IIF com parâmetros NULL
DECLARE @P INT = NULL, @S INT = NULL;
SELECT [Result] = IIF( 45 > 30, @P, @S );
Veja a seguir o conjunto de resultados.
Result
--------
NULL