In SQLite, iif()
is een voorwaardelijke functie die het tweede of derde argument retourneert op basis van de evaluatie van het eerste argument.
Het is logisch gelijk aan CASE WHEN X THEN Y ELSE Z END
.
iif()
is een afkorting voor Immediate IF .
De iif()
functie is geïntroduceerd in SQLite 3.32.0, die werd uitgebracht op 22 mei 2020.
Syntaxis
De syntaxis gaat als volgt:
iif(X,Y,Z)
Waar:
- X is de uitdrukking die moet worden geëvalueerd.
- J definieert wat wordt geretourneerd als de evaluatie van X geeft true terug.
- Z definieert wat wordt geretourneerd als de evaluatie van X geeft false terug.
Een andere manier om erover na te denken is als volgt:
iif(expr, truepart, falsepart)
Voorbeeld
Hier is een eenvoudig voorbeeld om te laten zien hoe iif()
werkt.
SELECT iif( 1 < 2, "True", "False" );
Resultaat:
True
In dit geval was de te evalueren uitdrukking 1 < 2
. Het is waar dat 1 kleiner is dan 2, dus het tweede argument is geretourneerd.
Dit komt overeen met het volgende doen.
SELECT
CASE WHEN 1 < 2 THEN "True"
ELSE "False"
END;
Resultaat:
True
In deze voorbeelden heb ik de woorden "True" en "False" gebruikt, maar ik had alles kunnen gebruiken.
Ik had bijvoorbeeld dit kunnen doen:
SELECT iif( 1 < 2, "Fail", "Pass" );
Resultaat:
Fail
Of het kan iets zijn dat volledig is verwijderd van een "waar" of "onjuist" binair antwoord.
Bijvoorbeeld:
SELECT iif( 1 < 2, "Sticky Rice", "Banana Smoothie" );
Resultaat:
Sticky Rice
Databasevoorbeeld
Hier is een voorbeeld dat kolommen uit een database gebruikt.
SELECT
ProductName,
Qty,
iif( Qty < 10, "Order more", "Sufficient stock" ) AS Notes
FROM Products;
Resultaat:
ProductName Qty Notes ----------- ---------- ---------------- Hammer 10 Sufficient stock Saw 5 Order more Wrench 7 Order more Chisel 9 Order more Bandage 70 Sufficient stock