- 03/14/2017
- 2 minuty na przeczytanie
-
- c
- k
- r
- P
- i
-
+5
Dotyczy: SQL Server (wszystkie obsługiwane wersje) Azure SQL Database
Zwraca jedną z dwóch wartości, w zależności od tego, czy wyrażenie logiczne ewaluuje do true czy false w SQL Server.
Konwencje składni języka Transact-SQL
Syntaktyka
IIF( boolean_expression, true_value, false_value )
Uwaga
Aby wyświetlić składnię języka Transact-SQL dla SQL Server 2014 i wcześniejszych, zobacz Dokumentacja poprzednich wersji.
Argumenty
boolean_wyrażenie
Właściwe wyrażenie boolean.
Jeśli ten argument nie jest wyrażeniem boolean, to zostanie wyświetlony błąd składni.
true_value
Wartość zwracana, jeśli boolean_wyrażenie jest prawdziwe.
false_value
Wartość zwracana jeśli wyrażenie boolean_wyraża wartość false.
Typy zwracane
Wraca typ danych z najwyższym pierwszeństwem spośród typów true_value i false_value. Aby uzyskać więcej informacji, zobacz Precedencja typów danych (Transact-SQL).
Uwagi
IIF jest skrótem do zapisu wyrażenia CASE. Oblicza ono wyrażenie logiczne przekazane jako pierwszy argument, a następnie zwraca jeden z dwóch pozostałych argumentów na podstawie wyniku obliczenia. To znaczy, wartość true_jest zwracana jeśli wyrażenie booleańskie jest prawdziwe, a wartość false_jest zwracana jeśli wyrażenie booleańskie jest fałszywe lub nieznane. true_value i false_value mogą być dowolnego typu. Te same zasady, które stosują się do wyrażenia CASE dla wyrażeń logicznych, obsługi null i typów zwracanych, stosują się również do IIF. Aby uzyskać więcej informacji, zobacz CASE (Transact-SQL).
To, że IIF jest tłumaczone na CASE, ma również wpływ na inne aspekty zachowania tej funkcji. Ponieważ wyrażenia CASE mogą być zagnieżdżane tylko do poziomu 10, instrukcje IIF również mogą być zagnieżdżane tylko do maksymalnego poziomu 10. Ponadto, IIF jest przekazywany do innych serwerów jako semantycznie równoważne wyrażenie CASE, ze wszystkimi zachowaniami zdalnego wyrażenia CASE.
Przykłady
A. Prosty przykład IIF
DECLARE @a INT = 45, @b INT = 40;SELECT = IIF( @a > @b, 'TRUE', 'FALSE' );
Tutaj znajduje się zestaw wyników.
Result -------- TRUE
B. IIF ze stałymi NULL
SELECT = IIF( 45 > 30, NULL, NULL );
Wynikiem tej instrukcji jest błąd.
C. IIF z parametrami NULL
DECLARE @P INT = NULL, @S INT = NULL; SELECT = IIF( 45 > 30, @P, @S );
Tutaj znajduje się zbiór wyników.
Result -------- NULL
Zobacz także
CASE (Transact-SQL)
CHOOSE (Transact-SQL)