SQL Server 2012 Verwenden der logischen Funktion IIF ()

SQL Server 2012 hat die neue logische Funktion IIF () eingeführt. Das Verhalten der Funktion IIF () ist den Anweisungen von CASE und IF in SQL Server sehr ähnlich. Mit IIF () können Sie weniger Codezeilen verwenden und Ihr Code wird besser lesbar.

Untersuchen wir die IIF () - Funktion anhand einiger Beispiele.

IIF () - Die Funktion gibt einen der beiden Werte zurück, je nachdem, ob der angegebene boolesche Ausdruck als wahr oder falsch ausgewertet wird.

Syntax: IIF (boolean_expression, true_value, false_value)


• Das erste Argument (boolean_expression) akzeptiert den auszuwertenden booleschen Ausdruck.
• Die Funktion gibt das zweite Argument (true_value) zurück, wenn der boolesche Ausdruck als true ausgewertet wird.
• Die Funktion gibt das dritte Argument zurück (false_value), wenn der boolesche Ausdruck fehlgeschlagen ist.

Sehen wir uns einige schnelle SQL-Abfragen mit der Funktion IIF () an.

Beispiel 1.1: Vergleichen Sie zwei Zahlen mit IIF ()

SELECT IIF (1> 0, 'True', 'False') AS 'Output' GO Ausgabe ------ True


Beispiel 1.2: Vergleichen Sie zwei Daten mit IIF ()

SELECT IIF ('10 / 15/2012 '> '01 / 01/2012', 'Ja', 'Nein') AS 'Ausgang' GO Ausgang ------ Ja


Beispiel 1.3: Vergleich zweier Integer-Variablen mit IIF ()

DECLARE @ num1 AS INT = 150 DECLARE @ num2 AS INT = 100 SELECT IIF (@ num1 <@ num2, 'True', 'False') AS 'Ausgang' GO Ausgang ------ False


Beispiel 1.4: Vergleichen Sie zwei Strings mit IIF ()
Die meisten von Ihnen fragen sich, warum wir IIF () über CASE- und IF-Anweisungen verwenden sollten.

IIF () sieht besser lesbar aus, ist einfacher in der Herstellung und hat weniger Codezeilen als CASE- und IF-Anweisungen.

Lassen Sie uns die verschiedenen Methoden des Vergleichs zweier Strings mithilfe von IF-, CASE- und IIF () - Funktion vergleichen.

DECLARE @str as varchar (20) = 'tech-recipes', wenn (@str = 'tech-recipes') 'Yes' AS 'OUTPUT' wählen, ansonsten 'No' AS 'OUTPUT' GO OUTPUT wählen ------ Ja
DECLARE @str AS varchar (20) = 'tech-recipes' CASE auswählen, wenn @ str = 'tech-recipes' THEN 'Yes' ELSE 'No' END AS 'Output' GO OUTPUT ------ Yes
DECLARE @str as varchar (20) = 'tech-recipes' wählt IIF (@str = 'tech-recipes', 'yes', 'no') als OUTPUT GO OUTPUT ------ Yes aus


Die drei obigen Abfragen, die IF-, CASE- und IIF () - Funktion verwenden, führen dasselbe aus und geben das gleiche Ergebnis zurück. Die Verwendung von IIF () ist jedoch einfacher und lesbarer.