In SQLite iif()
ist eine bedingte Funktion, die das zweite oder dritte Argument basierend auf der Auswertung des ersten Arguments zurückgibt.
Es ist logisch äquivalent zu CASE WHEN X THEN Y ELSE Z END
.
iif()
ist eine Abkürzung für Immediate IF .
Das iif()
Funktion wurde in SQLite 3.32.0 eingeführt, das am 22. Mai 2020 veröffentlicht wurde.
Syntax
Die Syntax lautet wie folgt:
iif(X,Y,Z)
Wo:
- X ist der auszuwertende Ausdruck.
- Ja definiert, was bei der Auswertung von X zurückgegeben wird gibt true zurück.
- Z definiert, was bei der Auswertung von X zurückgegeben wird gibt false zurück.
Man kann sich das auch so vorstellen:
iif(expr, truepart, falsepart)
Beispiel
Hier ist ein einfaches Beispiel, um zu demonstrieren, wie iif()
funktioniert.
SELECT iif( 1 < 2, "True", "False" );
Ergebnis:
True
In diesem Fall war der auszuwertende Ausdruck 1 < 2
. Es stimmt, dass 1 kleiner als 2 ist, also wurde das zweite Argument zurückgegeben.
Dies entspricht dem folgenden Vorgehen.
SELECT
CASE WHEN 1 < 2 THEN "True"
ELSE "False"
END;
Ergebnis:
True
In diesen Beispielen habe ich die Wörter „Wahr“ und „Falsch“ verwendet, aber ich hätte alles verwenden können.
Zum Beispiel hätte ich stattdessen Folgendes tun können:
SELECT iif( 1 < 2, "Fail", "Pass" );
Ergebnis:
Fail
Oder es könnte etwas sein, das vollständig von einer binären Antwort vom Typ „wahr“ oder „falsch“ entfernt ist.
Zum Beispiel:
SELECT iif( 1 < 2, "Sticky Rice", "Banana Smoothie" );
Ergebnis:
Sticky Rice
Datenbankbeispiel
Hier ist ein Beispiel, das Spalten aus einer Datenbank verwendet.
SELECT
ProductName,
Qty,
iif( Qty < 10, "Order more", "Sufficient stock" ) AS Notes
FROM Products;
Ergebnis:
ProductName Qty Notes ----------- ---------- ---------------- Hammer 10 Sufficient stock Saw 5 Order more Wrench 7 Order more Chisel 9 Order more Bandage 70 Sufficient stock