De SQL Server IIF() functie heeft drie parameters. IIF() beoordeelt of evalueert de eerste parameter en geeft de tweede parameters terug als de eerste parameter waar is; anders geeft het de derde parameters terug. IIF()-functie wordt in SQL Server gebruikt om if-else-logica aan query’s toe te voegen.>
Syntax :
IIF(boolean_value, true_value, false_value)
Parameters die in Syntax worden gebruikt:
- boolean_value –
Het is een waarde die moet worden beoordeeld. Het moet een geldige booleaanse waarde zijn, anders geeft de functie een fout. - true_value –
Het is de waarde die moet worden berekend als de boolean_value op true. - false_value –
Het is de waarde die moet worden berekend als de boolean_value op false.
Wetenswaardigheid: De IIF() functie is vergelijkbaar met een CASE expressie –
CASE WHEN boolean_expression THEN true_value ELSE false_valueEND
Example-1 :
Om de IIF() functie te gebruiken om te controleren of 40 < 60 :
SELECT IIF(40 < 60, 'True', 'False') AS Result ;
Uitvoer :
True
Laten we aannemen dat we onderstaande voorbeeldtabel hebben met de naam “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 |
Exemplaar-2 :
Om IIF() functie te gebruiken met tabel kolom.
Hieronder voorbeeld gebruikt IIF()-functie binnen IIF()-functies:
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 ;
Uitvoer :
Status | Telling |
---|---|
4 | |
In-Progress | 3 |
Rejected | 4 |
Completed | 3 |
Exemplaar-3 :
Het gebruik van IIF() functie met aggregaat functies.
Het volgende voorbeeld gebruikt de IIF()-functie met de SUM()-functie:
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;
Uitvoer :
Hier resulteert de IIF()-functie in 1 of 0 als de status overeenkomt. De SUM() functie geeft het aantal van elke status.
Waiting | InProgress | Rejected | Completed | Total |
---|---|---|---|---|
4 | 3 | 4 | 3 | 15 |