Funkcje logiczne – IIF (Transact-SQL)

  • 03/14/2017
  • 2 minuty na przeczytanie
    • c
    • k
    • r
    • P
    • i
    • +5

Dotyczy: takSQL Server (wszystkie obsługiwane wersje) takAzure 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.

Ikona odnośnika do tematu 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)

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *