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 |