funkcja SQL IIF jest nową wbudowaną funkcją logiczną wprowadzoną w SQL Server 2012. Możemy rozważyć SQL Server IIF jako skrócony sposób zapisu instrukcji IF Else I CASE.

funkcja SQL Server IIF przyjmie trzy argumenty. Pierwszym argumentem jest wyrażenie logiczne, które zwraca true lub false. Jeśli wyrażenie IIF jest prawdziwe, wtedy drugi argument zostanie zwrócony jako wynik. W przeciwnym razie trzeci argument powróci jako wynik., Spójrzmy na składnię funkcji IIF serwera SQL:

składnia funkcji logicznej SQL IIF:

składnia IIF w SQL serwerze jest następująca:

IIF (Boolean_Expression, True_Value, Flase_Value)

Jeżeli podane wyrażenie logiczne (lub warunek testu) jest prawdziwe, to zwróci wartość True_Value. Jeżeli jest false, to zostanie zwrócona wartość False_Value.

SQL IIF porównanie dwóch liczb całkowitych

Ten przykład pokaże funkcjonalność działania funkcji IIF w SQL Server

SELECT IIF(10 > 5, 'TRUE', 'FALSE') AS Result;

z poniższego zrzutu ekranu można zaobserwować ten warunek wewnątrz funkcji IIF (tj.,, 10 > 5) jest prawdą. Tak więc pierwsze polecenie (lub drugi argument) zwrócone jako wyjście, które jest prawdziwe

SQL IIF Porównaj dwie zmienne całkowite

w tym przykładzie użyjemy funkcji IIF, aby dowiedzieć się, czy osoba jest uprawniony do głosowania lub nie.

z poniższego zrzutu ekranu można zauważyć, że

  • w pierwszej instrukcji SELECT, warunek wewnątrz funkcji IIF (tj. 12 > 18) jest false., Tak więc, druga instrukcja (lub trzeci argument) zwrócona jako wyjście
  • w drugiej instrukcji SELECT, warunek wewnątrz funkcji IIF (tzn. 34 > 18) jest true. Tak więc pierwsza instrukcja (lub drugi argument) zwrócona jako wyjście

SQL IIF Porównaj dwa ciągi

w tym przykładzie użyjemy funkcji SQL Server IIF do porównania danych ciągu. Tutaj użyliśmy symbolu ' % ' wewnątrz drugiej instrukcji SELECT., Proponuję więc odnieść się do SQL jak artykuł w SQL Server w celu uzyskania dalszych informacji.

przykład zagnieżdżonego IIF SQL

w tym przykładzie użyjemy zagnieżdżonej funkcji IIF SQL Server, aby dowiedzieć się, czy dana osoba jest uprawniona do pracy, czy nie.

  1. najpierw zadeklarowaliśmy zmienną całkowitą o nazwie @age i przypisaliśmy pewną wartość.
  2. w funkcji IIF() pierwszy warunek sprawdza, czy wiek jest mniejszy niż 18 lat., Jeśli warunek jest prawdziwy, to zwróci pierwsze polecenie (lub drugi argument) po przecinku, czyli jesteś zbyt młody, aby działać
  3. gdy pierwszy warunek się nie powiedzie, zwróci drugie polecenie (lub trzeci argument). Używając zagnieżdżonego IIF SQL Server, sprawdzamy tutaj jeszcze jeden warunek (@age >= 18 i @age < = 60)., Jeśli warunek jest prawdziwy, to zwraca pierwszą wartość po przecinku, co oznacza, że jesteś uprawniony do pracy
  4. Jeśli zagnieżdżony warunek nie powiedzie się, wywoła wartość z trzeciego argumentu, czyli jesteś zbyt stary, aby działać.,

wyjście 1: Wiek = 12

Wiek = 32

wiek = 65

SQL IIF praca z wartościami null

najlepiej byłoby, gdybyś był ostrożny podczas pracy z wartościami null wewnątrz funkcji IIF. Poniższe przykłady pomogą Ci zrozumieć konsekwencje.,

SELECT IIF(10 > 5, NULL, NULL) AS Result;

z powyższego zrzutu ekranu można zauważyć, że wyświetlany jest błąd. Mówiąc, że co najmniej jedno z wyrażeń wynikowych (tzn. drugi lub trzeci argument po wyrażeniu Boolean_Expression) musi być wyrażeniem innym niż stała NULL., Zmienimy je odpowiednio i zobacz

SELECT IIF(10 > 5, 'TRUE', NULL) AS Result1;SELECT IIF(10 > 5, NULL, 'FALSE') AS Result2;

SQL IIF wartość NULL Opcja 2

możemy przezwyciężyć błędy, które wystąpił przez stałe null w funkcji IIF przy użyciu parametrów.

DECLARE @a INT = NULL, @b INT = NULL SELECT IIF ( 10 > 5, @a, @b ) AS Result1;

typ danych IIF z najwyższym priorytetem

funkcja IIF zwróci typ danych z najwyższym priorytetem

pierwszeństwo., Z poniższego przykładu wynik będzie trzecim argumentem (tzn. 100) typu integer, ale wynik będzie wyświetlał 100.00. Ponieważ funkcja IIF zwróci typ danych o najwyższym priorytecie.

SELECT IIF ( 15 > 50, 12.45, 100 ) AS Result;

zapoznaj się z artykułami Else I CASE Statement.

Articles

Dodaj komentarz

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