La fonction IIF() de SQL Server possède trois paramètres. La fonction IIF() juge ou évalue le premier paramètre et renvoie le deuxième paramètre si le premier paramètre est vrai ; sinon, elle renvoie le troisième paramètre. La fonction IIF() est utilisée dans SQL Server pour ajouter une logique if-else aux requêtes.>
Syntaxe :
IIF(boolean_value, true_value, false_value)
Paramètres utilisés dans la syntaxe :
- boolean_value –
C’est une valeur à juger. Ce doit être une valeur booléenne valide, sinon la fonction lèvera une erreur. - Valeur_vraie –
C’est la valeur à résulter si la valeur booléenne à true. - Valeur_faux –
C’est la valeur à résulter si la valeur booléenne à false.
Fait à savoir : La fonction IIF() est similaire à une expression CASE –
CASE WHEN boolean_expression THEN true_value ELSE false_valueEND
Exemple-1 :
Pour utiliser la fonction IIF() pour vérifier si 40 < 60 :
SELECT IIF(40 < 60, 'True', 'False') AS Result ;
Sortie :
True
Supposons que nous avons ci-dessous un exemple de tableau nommé « 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 |
Exemple-2 :
Pour utiliser la fonction IIF() avec une colonne de tableau.
L’exemple ci-dessous utilise la fonction IIF()dans les fonctions 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 ;
Sortie :
Status | Count |
---|---|
Waiting | 4 |
En cours | 3 |
Rejeté | 4 | Complété | 3 |
Exemple-3 :
Pour utiliser la fonction IIF() avec des fonctions agrégées.
L’exemple ci-dessous utilise la fonction IIF()avec la fonction 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;
Sortie :
Ici, la fonction IIF() résulte 1 ou 0 si le statut est mis en correspondance. La fonction SUM() résulte le nombre de chaque statut.
Waiting | InProgress | Rejected | Completed | Total |
---|---|---|---|---|
4 | 3 | 4 | 3 | 15 |