- 14.03.2017
- 2 Minuten zu lesen
-
- c
- k
- r
- P
- i
-
+5
Gilt für: SQL Server (alle unterstützten Versionen) Azure SQL Database
Gibt einen von zwei Werten zurück, je nachdem, ob der boolesche Ausdruck in SQL Server als wahr oder falsch ausgewertet wird.
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)