Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-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