V SQLite, iif() je podmíněná funkce, která vrací druhý nebo třetí argument na základě vyhodnocení prvního argumentu.
Je to logicky ekvivalentní CASE WHEN X THEN Y ELSE Z END .
iif() je zkratka pro okamžité IF .
iif() funkce byla představena ve verzi SQLite 3.32.0, která byla vydána 22. května 2020.
Syntaxe
Syntaxe vypadá takto:
iif(X,Y,Z) Kde:
- X je výraz, který má být vyhodnocen.
- Ano definuje, co je vráceno v případě vyhodnocení X vrátí true.
- Z definuje, co je vráceno v případě vyhodnocení X vrátí hodnotu false.
Jiný způsob, jak si to představit, je tento:
iif(expr, truepart, falsepart) Příklad
Zde je základní příklad, který ukazuje, jak iif() funguje.
SELECT iif( 1 < 2, "True", "False" ); Výsledek:
True
V tomto případě byl výraz k vyhodnocení 1 < 2 . Je pravda, že 1 je menší než 2, takže byl vrácen druhý argument.
Toto je ekvivalent provedení následujícího.
SELECT
CASE WHEN 1 < 2 THEN "True"
ELSE "False"
END; Výsledek:
True
V těchto příkladech jsem použil slova „True“ a „False“, ale mohl jsem použít cokoli.
Místo toho jsem mohl například udělat toto:
SELECT iif( 1 < 2, "Fail", "Pass" ); Výsledek:
Fail
Nebo to může být něco úplně odstraněného z odpovědi binárního typu „pravda“ nebo „nepravda“.
Například:
SELECT iif( 1 < 2, "Sticky Rice", "Banana Smoothie" ); Výsledek:
Sticky Rice
Příklad databáze
Zde je příklad, který používá sloupce z databáze.
SELECT
ProductName,
Qty,
iif( Qty < 10, "Order more", "Sufficient stock" ) AS Notes
FROM Products; Výsledek:
ProductName Qty Notes ----------- ---------- ---------------- Hammer 10 Sufficient stock Saw 5 Order more Wrench 7 Order more Chisel 9 Order more Bandage 70 Sufficient stock