Logische Functies – IIF (Transact-SQL)

  • 03/14/2017
  • 2 minuten om te lezen
    • c
    • k
    • r
    • P
    • i
    • +5

Geldt voor: jaSQL Server (alle ondersteunde versies) jaAzure 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.

Topic link icon 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)

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *