Dans SQLite, iif()
est une fonction conditionnelle qui renvoie le deuxième ou le troisième argument en fonction de l'évaluation du premier argument.
C'est logiquement équivalent à CASE WHEN X THEN Y ELSE Z END
.
iif()
est une abréviation pour SI immédiat .
Le iif()
La fonction a été introduite dans SQLite 3.32.0, qui a été publiée le 22 mai 2020.
Syntaxe
La syntaxe ressemble à ceci :
iif(X,Y,Z)
Où :
- X est l'expression à évaluer.
- O définit ce qui est retourné si l'évaluation de X renvoie vrai.
- Z définit ce qui est retourné si l'évaluation de X renvoie faux.
Une autre façon de penser est la suivante :
iif(expr, truepart, falsepart)
Exemple
Voici un exemple de base pour montrer comment iif()
fonctionne.
SELECT iif( 1 < 2, "True", "False" );
Résultat :
True
Dans ce cas, l'expression à évaluer était 1 < 2
. Il est vrai que 1 est inférieur à 2 donc le deuxième argument a été retourné.
Cela équivaut à faire ce qui suit.
SELECT
CASE WHEN 1 < 2 THEN "True"
ELSE "False"
END;
Résultat :
True
Dans ces exemples, j'ai utilisé les mots "Vrai" et "Faux", mais j'aurais pu utiliser n'importe quoi.
Par exemple, j'aurais pu faire ceci à la place :
SELECT iif( 1 < 2, "Fail", "Pass" );
Résultat :
Fail
Ou cela pourrait être quelque chose de complètement retiré d'une réponse de type binaire "vrai" ou "faux".
Par exemple :
SELECT iif( 1 < 2, "Sticky Rice", "Banana Smoothie" );
Résultat :
Sticky Rice
Exemple de base de données
Voici un exemple qui utilise des colonnes d'une base de données.
SELECT
ProductName,
Qty,
iif( Qty < 10, "Order more", "Sufficient stock" ) AS Notes
FROM Products;
Résultat :
ProductName Qty Notes ----------- ---------- ---------------- Hammer 10 Sufficient stock Saw 5 Order more Wrench 7 Order more Chisel 9 Order more Bandage 70 Sufficient stock