Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
Devolve um de dois valores, dependendo se a expressão booleana é avaliada como verdadeira ou falsa no SQL Server.
Transact-SQL convenções de sintaxe
Sintaxe
IIF( boolean_expression, true_value, false_value )
Arguments
boolean_expression
Uma expressão booleana válida.
Se este argumento não for uma expressão booleana, então surge um erro de sintaxe.
true_value
Valor a devolver se boolean_expression avaliar como verdadeiro.
false_value
Valor a devolver se boolean_expression for avaliado como falso.
Tipos de devolução
Devolve o tipo de dado com maior precedência em relação aos tipos em true_value e false_value. Para obter mais informações, consulte Precedência de Tipos de Dados (Transact-SQL).
Observações
IIF é uma forma abreviada de escrever uma expressão CASE. Avalia a expressão booleana passada como primeiro argumento e depois retorna qualquer um dos outros dois argumentos com base no resultado da avaliação. Ou seja, o true_value é devolvido se a expressão booleana for verdadeira, e o false_value é devolvido se a expressão booleana 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 booleanas, tratamento de nulos e tipos de retorno também se aplicam ao IIF. Para mais informações, consulte CASE (Transact-SQL).
O facto de a IIF ser traduzida em CASE também tem impacto noutros aspetos do comportamento desta função. Como as expressões CASE só podem ser aninhadas até ao nível 10, as instruções IIF também podem ser aninhadas apenas até ao nível máximo de 10. Além disso, a IIF é remotamente enviada para outros servidores como uma expressão CASE semanticamente equivalente, com todos os comportamentos de uma expressão CASE remota.
O IIF não é suportado em pools SQL dedicados no Azure Synapse Analytics.
Examples
A. Exemplo simples de IIF
DECLARE @a INT = 45, @b INT = 40;
SELECT [Result] = IIF( @a > @b, 'TRUE', 'FALSE' );
Aqui está o conjunto de resultados.
Result
--------
TRUE
B. IIF com constantes NULL
SELECT [Result] = IIF( 45 > 30, NULL, NULL );
O resultado desta afirmação é um erro.
C. IIF com parâmetros NULL
DECLARE @P INT = NULL, @S INT = NULL;
SELECT [Result] = IIF( 45 > 30, @P, @S );
Aqui está o conjunto de resultados.
Result
--------
NULL