Home » BI / SQL » Neue T-SQL Funktionen im SQL Server 2012 (Teil 4/4)
Neue T-SQL Funktionen im SQL Server 2012 (Teil 4/4)
15. Februar 2012
Im letzten Teil der Serie möchte ich die neuen Logikfunktionen CHOOSE und IIF vorstellen. Diese wurden hauptsächlich für eine einfachere Portierung von Abfragen aus Access eingeführt und bieten keine grundsätzlich neue Funktionalität.
CHOOSE
Die CHOOSE Funktion entspricht weitestgehend der CASE Funktion und besteht aus zwei Teilen. Der Erste Teil ist ein Integer- oder Floatwert und definiert die Position des Ausgabewertes innerhalb der nachfolgenden Werte. Der zweite Teil definiert eine Liste aus möglichen Ausgabewerten. Floatwerte im ersten Parameter werden in Integerwerte umgewandelt.
Ist der übergebene Index größer als die Anzahl der möglichen Ausgabewerte wird NULL zurückgegeben.
Hier ein kleines Beispiel:
SELECT CHOOSE(1, 'A', 'B', 'C') AS Erster, CHOOSE(2, 'A', 'B', 'C') AS Zweiter, CHOOSE(3.9, 'A', 'B', 'C') AS FloatWert, CHOOSE(4, 'A', 'B', 'C') AS Ausserhalb;
Das Ergebnis ist dann wie folgt:
Erster Zweiter FloatWert Ausserhalb ------ ------ ------ ------ A B C NULL
IIF
Die IIF Funktion erwartet drei Parameter. Ist der erste Parameter Wahr, wird der zweite Parameter als Ergebnis zurückgegeben. Andernfalls ist der dritte Parameter das Ergebnis.
Genau wie die CHOOSE Funktion kann diese Abfrage auch mit CASE erstellt werden. Sinn und zweck ist schlicht eine einfache Portierung von Access auf SQL Server.