IIF (TSQL Function)

Returns the true_value if boolean_expression is true. Else, returns false_value.

Syntax

IIF ( boolean_expression , true_value , false_value )

Arguments

boolean_expression
is an expression of type bool.
true_value
is an expression of any type.
false_value
is an expression of any type.

Return Types

Returns the type of true_value or false_value, which has the highest type precedence.

Examples

DECLARE @a int = 20, @b int = 10;
PRINT IIF(@a > @b, 'Hello', 'Goodbye');

The result is:

Hello

Example with different argument types:

PRINT IIF(20 > 10, '2000', 123)  -- the string '2000' can be converted to int
PRINT IIF(20 > 10, 'Hello', 123) -- the string 'Hello' cannot be converted to int

The result type is int, because it has higher precedence than varchar:

2000
<Conversion error. VARCHAR "Hello" cannot be cast into INT, invalid string.>