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