SQLite
 sql >> Base de données >  >> RDS >> SQLite

Comment fonctionne iif() dans SQLite

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