W SQLite, iif()
jest funkcją warunkową, która zwraca drugi lub trzeci argument na podstawie oceny pierwszego argumentu.
Jest logicznie odpowiednikiem CASE WHEN X THEN Y ELSE Z END
.
iif()
to skrót od Natychmiastowe JEŻELI .
iif()
funkcja została wprowadzona w wersji SQLite 3.32.0, która została wydana 22 maja 2020 r.
Składnia
Składnia wygląda tak:
iif(X,Y,Z)
Gdzie:
- X jest wyrażeniem do oceny.
- T definiuje, co jest zwracane, jeśli ocena X zwraca prawdę.
- Z definiuje, co jest zwracane, jeśli ocena X zwraca fałsz.
Inny sposób myślenia jest taki:
iif(expr, truepart, falsepart)
Przykład
Oto podstawowy przykład pokazujący, jak iif()
działa.
SELECT iif( 1 < 2, "True", "False" );
Wynik:
True
W tym przypadku wyrażenie do oceny to 1 < 2
. Prawdą jest, że 1 jest mniejsze niż 2, więc został zwrócony drugi argument.
Jest to równoważne z wykonaniem następujących czynności.
SELECT
CASE WHEN 1 < 2 THEN "True"
ELSE "False"
END;
Wynik:
True
W tych przykładach użyłem słów „Prawda” i „Fałsz”, ale mogłem użyć wszystkiego.
Na przykład mógłbym zrobić to zamiast tego:
SELECT iif( 1 < 2, "Fail", "Pass" );
Wynik:
Fail
Lub może to być coś całkowicie usuniętego z „prawdziwej” lub „fałszywej” odpowiedzi typu binarnego.
Na przykład:
SELECT iif( 1 < 2, "Sticky Rice", "Banana Smoothie" );
Wynik:
Sticky Rice
Przykład bazy danych
Oto przykład, który wykorzystuje kolumny z bazy danych.
SELECT
ProductName,
Qty,
iif( Qty < 10, "Order more", "Sufficient stock" ) AS Notes
FROM Products;
Wynik:
ProductName Qty Notes ----------- ---------- ---------------- Hammer 10 Sufficient stock Saw 5 Order more Wrench 7 Order more Chisel 9 Order more Bandage 70 Sufficient stock