- 03/14/2017
- 2 minutes de lecture
-
- c
- k
- r
- P
- i
-
+5
S’applique à : SQL Server (toutes les versions prises en charge) Azure SQL Database
Retourne l’une des deux valeurs, selon que l’expression booléenne évalue à true ou false dans SQL Server.
Conventions syntaxiques Transact-SQL
Syntaxe
IIF( boolean_expression, true_value, false_value )
Note
Pour consulter la syntaxe Transact-SQL de SQL Server 2014 et des versions antérieures, consultez la documentation des versions antérieures.
Arguments
expression booléenne
Une expression booléenne valide.
Si cet argument n’est pas une expression booléenne, alors une erreur de syntaxe est soulevée.
valeur_true
Valeur à retourner si l’expression booléenne évalue à true.
valeur_false
Valeur à retourner si l’expression booléenne évalue à false.
Types de retour
Retourne le type de données ayant la plus haute préséance parmi les types dans valeur_vraie et valeur_false. Pour plus d’informations, consultez la rubrique Prédominance des types de données (Transact-SQL).
Remarques
IIF est un moyen raccourci d’écrire une expression CASE. Elle évalue l’expression booléenne passée comme premier argument, puis renvoie l’un ou l’autre des deux autres arguments en fonction du résultat de l’évaluation. Autrement dit, la valeur true est renvoyée si l’expression booléenne est vraie, et la valeur false est renvoyée si l’expression booléenne est fausse ou inconnue. true_value et false_value peuvent être de n’importe quel type. Les règles qui s’appliquent à l’expression CASE pour les expressions booléennes, le traitement des nullités et les types de retour s’appliquent également à IIF. Pour plus d’informations, voir CASE (Transact-SQL).
Le fait que IIF soit traduit en CASE a également un impact sur d’autres aspects du comportement de cette fonction. Comme les expressions CASE ne peuvent être imbriquées que jusqu’au niveau 10, les instructions IIF ne peuvent également être imbriquées que jusqu’au niveau maximum de 10. De plus, IIF est remotorisé vers d’autres serveurs comme une expression CASE sémantiquement équivalente, avec tous les comportements d’une expression CASE remotorisée.
Exemples
A. Exemple d’IIF simple
DECLARE @a INT = 45, @b INT = 40;SELECT = IIF( @a > @b, 'TRUE', 'FALSE' );
Voici le jeu de résultats.
Result -------- TRUE
B. IIF avec constantes NULL
SELECT = IIF( 45 > 30, NULL, NULL );
Le résultat de cette instruction est une erreur.
C. IIF avec paramètres NULL
DECLARE @P INT = NULL, @S INT = NULL; SELECT = IIF( 45 > 30, @P, @S );
Voici le jeu de résultats.
Result -------- NULL
See Also
CASE (Transact-SQL)
CHOOSE (Transact-SQL)