Logical Functions – IIF (Transact-SQL)SQL)

  • 03/14/2017
  • 2 minutos para ler
  • ul>
  • >c
  • k
  • r
  • P
  • i
  • +5

p>P>P>Pera a yesSQL Server (todas as versões suportadas) SimAzure SQL Database

Retorna um de dois valores, dependendo se a expressão booleana se avalia como verdadeira ou falsa no SQL Server.

Icone de ligação tópicoConvenções de Sintaxe Transact-SQL

Sintaxe

IIF( boolean_expression, true_value, false_value )

Nota

Para ver a sintaxe Transact-SQL para o SQL Server 2014 e versões anteriores, ver documentação das versões anteriores.

Argumentos

expressão_booleana
Uma expressão booleana válida.

Se este argumento não for uma expressão booleana, então um erro de sintaxe é levantado.

valor_verdadeiro
Valor a retornar se a expressão booleana for avaliada como verdadeira.

valor_falso
Valor a retornar se a expressão booleana avaliar como falso.

Tipos de retorno

Retorna o tipo de dados com a maior precedência dos tipos em verdadeiro_valor e falso_valor. Para mais informações, ver Precedência do tipo de dados (Transact-SQL).

Remarks

IIF é uma forma abreviada de escrever uma expressão CASE. Avalia a expressão booleana passada como o primeiro argumento, e depois devolve qualquer um dos outros dois argumentos com base no resultado da avaliação. Ou seja, o verdadeiro_valor é devolvido se a expressão booleana for verdadeira, e o falso_valor é devolvido se a expressão booleana for falsa ou desconhecida. verdadeiro_valor e falso_valor podem ser de qualquer tipo. As mesmas regras que se aplicam à expressão CASO para expressões booleanas, manipulação nula, e tipos de retorno também se aplicam ao IIF. Para mais informações, ver CASE (Transact-SQL).

O facto de o IIF ser traduzido para CASE também tem um impacto sobre outros aspectos do comportamento desta função. Uma vez que as expressões CASE só podem ser aninhadas até ao nível 10, as declarações IIF também só podem ser aninhadas até ao nível máximo de 10. Além disso, a IIF é removida para outros servidores como uma expressão CASE semanticamente equivalente, com todos os comportamentos de uma expressão CASE removida.

Exemplos

A. Exemplo simples de IIF

DECLARE @a INT = 45, @b INT = 40;SELECT = IIF( @a > @b, 'TRUE', 'FALSE' );

Aqui está o resultado definido.

Result -------- TRUE 

B. IIF com constantes NULL

SELECT = 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 = IIF( 45 > 30, @P, @S );

Aqui está o resultado definido.

Result -------- NULL 

Ver Também

CASE (Transact-SQL)
CHOOSE (Transact-SQL)

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *