- 03/14/2017
- 2 minuten om te lezen
-
- c
- k
- r
- P
- i
-
+5
Geldt voor: SQL Server (alle ondersteunde versies) Azure SQL Database
Er wordt een van de twee waarden teruggegeven, afhankelijk van of de Booleaanse expressie in SQL Server op true of false wordt geëvalueerd.
Transact-SQL Syntax Conventions
Syntax
IIF( boolean_expression, true_value, false_value )
Note
Om de Transact-SQL syntaxis voor SQL Server 2014 en eerder te bekijken, raadpleegt u de documentatie voor eerdere versies.
Argumenten
boolean_expression
Een geldige Booleaanse expressie.
Als dit argument geen Booleaanse expressie is, wordt een syntaxisfout weergegeven.
true_value
Waarde om terug te geven als boolean_expression evalueert naar true.
false_value
Waarde om terug te geven als boolean_expression op false evalueert.
Return Types
Het gegevenstype met de hoogste voorrang van de types in true_value en false_value wordt teruggegeven. Voor meer informatie, zie Data Type Precedence (Transact-SQL).
Opmerkingen
IIF is een steno manier om een CASE expressie te schrijven. Het evalueert de Booleaanse uitdrukking die als eerste argument wordt doorgegeven, en geeft dan 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 vals of onbekend is. true_value en false_value kunnen van elk type zijn. Dezelfde regels die gelden voor de CASE-uitdrukking voor Booleaanse uitdrukkingen, afhandeling van null en terugkeertypen, gelden ook voor IIF. Zie CASE (Transact-SQL) voor meer informatie.
Het feit dat IIF in CASE wordt vertaald, heeft ook gevolgen voor andere aspecten van het gedrag van deze functie. Aangezien CASE expressies slechts tot het niveau van 10 genest kunnen worden, kunnen IIF statements ook slechts tot het maximale niveau van 10 genest worden. Ook wordt IIF naar andere servers geremoted als een semantisch equivalente CASE expressie, met al het gedrag van een geremoted CASE expressie.
Voorbeelden
A. Eenvoudig IIF voorbeeld
DECLARE @a INT = 45, @b INT = 40;SELECT = IIF( @a > @b, 'TRUE', 'FALSE' );
Hier is de resultatenset.
Result -------- TRUE
B. IIF met NULL constanten
SELECT = IIF( 45 > 30, NULL, NULL );
Het resultaat van dit statement is een fout.
C. IIF met NULL parameters
DECLARE @P INT = NULL, @S INT = NULL; SELECT = IIF( 45 > 30, @P, @S );
Hier ziet u de resultatenset.
Result -------- NULL
Zie ook
CASE (Transact-SQL)
CHOOSE (Transact-SQL)