Funzioni logiche - IIF (Transact-SQL)Logical Functions - IIF (Transact-SQL)

Si applica a:Applies to: sìSQL ServerSQL Server (tutte le versioni supportate) yesSQL ServerSQL Server (all supported versions) Sìdatabase SQL di AzureAzure SQL DatabaseYesdatabase SQL di AzureAzure SQL DatabaseSi applica a:Applies to: sìSQL ServerSQL Server (tutte le versioni supportate) yesSQL ServerSQL Server (all supported versions) Sìdatabase SQL di AzureAzure SQL DatabaseYesdatabase SQL di AzureAzure SQL Database

Viene restituito uno di due valori a seconda che l'espressione booleana sia true o false in SQL ServerSQL Server.Returns one of two values, depending on whether the Boolean expression evaluates to true or false in SQL ServerSQL Server.

Icona di collegamento a un argomento Convenzioni della sintassi Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintassiSyntax

IIF( boolean_expression, true_value, false_value )

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 e versioni precedenti, vedere Documentazione delle versioni precedenti.To view Transact-SQL syntax for SQL Server 2014 and earlier, see Previous versions documentation.

ArgomentiArguments

boolean_expressionboolean_expression
Espressione booleana valida.A valid Boolean expression.

Se questo argomento non è un'espressione booleana, viene generato un errore di sintassi.If this argument is not a Boolean expression then a syntax error is raised.

true_valuetrue_value
Valore da restituire se boolean_expression restituisce true.Value to return if boolean_expression evaluates to true.

false_valuefalse_value
Valore da restituire se boolean_expression restituisce false.Value to return if boolean_expression evaluates to false.

Tipi restituitiReturn Types

Restituisce il tipo di dati con precedenza maggiore nei tipi true_value e false_value.Returns the data type with the highest precedence from the types in true_value and false_value. Per altre informazioni, vedere Precedenza dei tipi di dati (Transact-SQL).For more information, see Data Type Precedence (Transact-SQL).

OsservazioniRemarks

IIF è un modo abbreviato per scrivere un'espressione CASE.IIF is a shorthand way for writing a CASE expression. Valuta l'espressione booleana passata come primo argomento, quindi restituisce uno dei due argomenti in base al risultato della valutazione.It evaluates the Boolean expression passed as the first argument, and then returns either of the other two arguments based on the result of the evaluation. Viene quindi restituito true_value se l'espressione booleana è true, mentre viene restituito false_value se l'espressione booleana è false o sconosciuta.That is, the true_value is returned if the Boolean expression is true, and the false_value is returned if the Boolean expression is false or unknown. true_value e false_value possono essere di qualsiasi tipo.true_value and false_value can be of any type. Le stesse regole applicate all'espressione CASE per espressioni booleane, gestione di valori Null e tipi restituiti vengono applicate anche a IIF.The same rules that apply to the CASE expression for Boolean expressions, null handling, and return types also apply to IIF. Per altre informazioni, vedere CASE (Transact-SQL).For more information, see CASE (Transact-SQL).

La conversione di IIF in CASE influisce inoltre su altri aspetti del comportamento di questa funzione.The fact that IIF is translated into CASE also has an impact on other aspects of the behavior of this function. Poiché le espressioni CASE possono essere nidificate solo fino a livello 10, anche le istruzioni IIF possono essere nidificate fino al livello massimo 10.Since CASE expressions can be nested only up to the level of 10, IIF statements can also be nested only up to the maximum level of 10. Inoltre l'istruzione IIF viene eseguita in modalità remota in altri server come un'espressione CASE equivalente dal punto di vista semantico, con tutti i comportamenti di un'espressione CASE eseguita in modalità remota.Also, IIF is remoted to other servers as a semantically equivalent CASE expression, with all the behaviors of a remoted CASE expression.

EsempiExamples

R.A. Esempio semplice di IIFSimple IIF example

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

Questo è il set di risultati.Here is the result set.

Result  
--------  
TRUE  

B.B. IIF con costanti NULLIIF with NULL constants

SELECT [Result] = IIF( 45 > 30, NULL, NULL );

Il risultato di questa istruzione è un errore.The result of this statement is an error.

C.C. IIF con parametri NULLIIF with NULL parameters

DECLARE @P INT = NULL, @S INT = NULL;  
SELECT [Result] = IIF( 45 > 30, @P, @S );

Questo è il set di risultati.Here is the result set.

Result  
--------  
NULL  

Vedere ancheSee Also

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