Funkcja SQL Server IIF() posiada trzy parametry. Funkcja IIF() ocenia lub ocenia pierwszy parametr i zwraca drugi parametr, jeśli pierwszy parametr jest prawdziwy; w przeciwnym razie zwraca trzeci parametr. Funkcja IIF() jest używana w SQL Server do dodawania logiki if-else do zapytań.>
Syntaktyka :
IIF(boolean_value, true_value, false_value)
Parametry użyte w składni:
- boolean_value –
Jest to wartość, która ma być oceniana. Musi to być poprawna wartość boolean, w przeciwnym razie funkcja podniesie błąd. - true_value –
Jest to wartość, która ma być wynikiem, jeśli wartość boolean_value to true. - false_value –
Jest to wartość, która ma być wynikiem, jeśli wartość boolean_value to false.
Fakty, które warto znać: Funkcja IIF() jest podobna do wyrażenia CASE –
CASE WHEN boolean_expression THEN true_value ELSE false_valueEND
Przykład-1 :
Aby użyć funkcji IIF() do sprawdzenia, czy 40 < 60 :
SELECT IIF(40 < 60, 'True', 'False') AS Result ;
Output :
True
Załóżmy, że mamy poniżej przykładową tabelę o nazwie „Geektable”:
G_id | G_status |
---|---|
1 | 3 |
2 | 2 |
3 | 4 |
4 | 2 |
5 | 3 |
6 | 1 |
7 | 2 |
8 | 1 |
9 | 4 |
10 | 1 |
11 | 4 |
12 | 3 |
13 | 1 |
14 | 3 |
Przykład-.2 :
Do użycia funkcji IIF() z kolumną tabeli.oniższy przykład wykorzystuje funkcję IIF()w ramach funkcji IIF():
SELECT IIF(G_status = 1, ‘Waiting’, IIF(G_status=2, ‘InProgress’, IIF(G_status=3, ‘Rejected’, IIF(G_status=4, ‘Completed’) ) ) ) AS Status, COUNT(G_id) AS CountFROM GeektableGROUP BY G_status ;
Wyjście :
Status | Liczba |
---|---|
Oczekiwanie | 4 |
InProgress | 3 |
Rejected | 4 |
Completed | 3 |
Przykład-.3 :
Do użycia funkcji IIF() z funkcjami agregującymi.oniższy przykład wykorzystuje funkcję IIF() z funkcją SUM():
SELECT SUM(IIF(G_status = 1, 1, 0)) AS ‘Waiting’, SUM(IIF(G_status = 2, 1, 0)) AS ‘InProgress’, SUM(IIF(G_status = 3, 1, 0)) AS ‘Rejected’, SUM(IIF(G_status = 4, 1, 0)) AS ‘Completed’, COUNT(*) AS TotalFROM Geektable;
Wyjście :
Tutaj funkcja IIF() daje wynik 1 lub 0, jeśli status jest zgodny. Funkcja SUM() wylicza liczbę każdego statusu.
Oczekujący | W toku | Odrzucony | Zakończony | Ogółem |
---|---|---|---|---|
4 | 3 | 4 | 3 | 15 |
Tagi związane z praktyką :