Logische Funktionen – IIF (Transact-.SQL)

  • 14.03.2017
  • 2 Minuten zu lesen
    • c
    • k
    • r
    • P
    • i
    • +5

Gilt für: JaSQL Server (alle unterstützten Versionen) JaAzure SQL Database

Gibt einen von zwei Werten zurück, je nachdem, ob der boolesche Ausdruck in SQL Server als wahr oder falsch ausgewertet wird.

Themenverknüpfungssymbol Transact-SQL-Syntaxkonventionen

Syntax

IIF( boolean_expression, true_value, false_value )

Hinweis

Die Transact-SQL-Syntax für SQL Server 2014 und früher finden Sie in der Dokumentation zu früheren Versionen.

Argumente

boolean_expression
Ein gültiger boolescher Ausdruck.

Wenn dieses Argument kein boolescher Ausdruck ist, wird ein Syntaxfehler ausgelöst.

true_value
Wert, der zurückgegeben wird, wenn boolean_expression zu true ausgewertet wird.

falscher_Wert
Wert, der zurückgegeben wird, wenn boolescher Ausdruck als falsch ausgewertet wird.

Rückgabetypen

Rückgibt den Datentyp mit der höchsten Priorität aus den Typen in true_value und false_value. Weitere Informationen finden Sie unter Datentypvorrang (Transact-SQL).

Bemerkungen

IIF ist eine Kurzform für das Schreiben eines CASE-Ausdrucks. Sie wertet den booleschen Ausdruck aus, der als erstes Argument übergeben wird, und gibt dann eines der beiden anderen Argumente zurück, je nach Ergebnis der Auswertung. Das heißt, der true_value wird zurückgegeben, wenn der boolesche Ausdruck wahr ist, und der false_value wird zurückgegeben, wenn der boolesche Ausdruck falsch oder unbekannt ist. true_value und false_value können von beliebigem Typ sein. Die gleichen Regeln, die für den CASE-Ausdruck für boolesche Ausdrücke, Nullbehandlung und Rückgabetypen gelten, gelten auch für IIF. Weitere Informationen finden Sie unter CASE (Transact-SQL).

Die Tatsache, dass IIF in CASE übersetzt wird, hat auch Auswirkungen auf andere Aspekte des Verhaltens dieser Funktion. Da CASE-Ausdrücke nur bis zur Ebene 10 verschachtelt werden können, können auch IIF-Anweisungen nur bis zur maximalen Ebene 10 verschachtelt werden. Außerdem wird IIF als semantisch äquivalenter CASE-Ausdruck an andere Server weitergereicht, mit allen Verhaltensweisen eines weitergereichten CASE-Ausdrucks.

Beispiele

A. Einfaches IIF-Beispiel

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

Hier ist die Ergebnismenge.

Result -------- TRUE 

B. IIF mit NULL-Konstanten

SELECT = IIF( 45 > 30, NULL, NULL );

Das Ergebnis dieser Anweisung ist ein Fehler.

C. IIF mit NULL-Parametern

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

Hier ist die Ergebnismenge.

Result -------- NULL 

See Also

CASE (Transact-SQL)
CHOOSE (Transact-SQL)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.