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