Delen via


Logische functies - IIF (Transact-SQL)

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-database in Microsoft Fabric

Geeft een van twee waarden terug, afhankelijk van of de Booleaanse expressie waar of onwaar wordt geëvalueerd in SQL Server.

Transact-SQL syntaxis-conventies

Syntaxis

IIF( boolean_expression, true_value, false_value )

Arguments

boolean_expression

Een geldige Booleaanse uitdrukking.

Als dit argument geen booleaanse expressie is, wordt er een syntaxisfout opgeroepen.

true_value

Waarde die moet teruggeven als boolean_expression naar waar geëvalueerd wordt.

false_value

Waarde die teruggeeft als boolean_expression naar false wordt geëvalueerd.

Retourtypen

Geeft het datatype met de hoogste prioriteit terug van de types in true_value en false_value. Zie prioriteit voor gegevenstypen (Transact-SQL) voor meer informatie.

Opmerkingen

IIF is een verkorte manier om een CASE-expressie te schrijven. Het evalueert de Booleaanse expressie die als eerste argument wordt doorgegeven, en geeft vervolgens een van de andere twee argumenten terug op basis van het resultaat van de evaluatie. Dat wil zeggen, de true_value wordt teruggegeven als de Booleaanse uitdrukking waar is, en de false_value wordt teruggegeven als de Booleaanse uitdrukking onwaar of onbekend is. true_value en false_value kunnen van elk type zijn. Dezelfde regels die gelden voor de CASE-expressie voor Booleaanse expressies, null handling en return types gelden ook voor IIF. Voor meer informatie, zie CASE (Transact-SQL).

Het feit dat IIF wordt vertaald naar CASE heeft ook invloed op andere aspecten van het gedrag van deze functie. Omdat CASE-expressies alleen tot het niveau 10 genest kunnen worden, kunnen IIF-statements ook alleen tot maximaal niveau 10 worden genest. Ook wordt IIF op afstand geremote naar andere servers als een semantisch equivalente CASE-expressie, met alle gedragingen van een remoted CASE-expressie.

IIF wordt niet ondersteund in dedicated SQL-pools in Azure Synapse Analytics.

Voorbeelden

Eén. Eenvoudig IIF-voorbeeld

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

Hier is het resultatenoverzicht.

Result  
--------  
TRUE  

B. IIF met NULL-constanten

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

Het resultaat van deze uitspraak is een fout.

C. IIF met NULL-parameters

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

Hier is het resultatenoverzicht.

Result  
--------  
NULL  

Volgende stappen