В SQLite, iif()
е условна функция, която връща втория или третия аргумент въз основа на оценката на първия аргумент.
Логически е еквивалентно на CASE WHEN X THEN Y ELSE Z END
.
iif()
е съкращение от Незабавен IF .
iif()
функцията беше въведена в SQLite 3.32.0, който беше пуснат на 22 май 2020 г.
Синтаксис
Синтаксисът е така:
iif(X,Y,Z)
Къде:
- X е изразът, който трябва да се оцени.
- Д дефинира какво се връща, ако оценката на X връща true.
- Z дефинира какво се връща, ако оценката на X връща false.
Друг начин да мислите за това е така:
iif(expr, truepart, falsepart)
Пример
Ето основен пример, за да демонстрирате как iif()
работи.
SELECT iif( 1 < 2, "True", "False" );
Резултат:
True
В този случай изразът за оценка е 1 < 2
. Вярно е, че 1 е по-малко от 2, така че вторият аргумент беше върнат.
Това е еквивалентно на следното.
SELECT
CASE WHEN 1 < 2 THEN "True"
ELSE "False"
END;
Резултат:
True
В тези примери използвах думите „Вярно“ и „Невярно“, но можех да използвам всичко.
Например, можех да направя това вместо това:
SELECT iif( 1 < 2, "Fail", "Pass" );
Резултат:
Fail
Или може да е нещо напълно премахнато от „вярен“ или „грешен“ отговор от двоичен тип.
Например:
SELECT iif( 1 < 2, "Sticky Rice", "Banana Smoothie" );
Резултат:
Sticky Rice
Пример за база данни
Ето пример, който използва колони от база данни.
SELECT
ProductName,
Qty,
iif( Qty < 10, "Order more", "Sufficient stock" ) AS Notes
FROM Products;
Резултат:
ProductName Qty Notes ----------- ---------- ---------------- Hammer 10 Sufficient stock Saw 5 Order more Wrench 7 Order more Chisel 9 Order more Bandage 70 Sufficient stock