I SQLite, iif()
är en villkorlig funktion som returnerar det andra eller tredje argumentet baserat på utvärderingen av det första argumentet.
Det motsvarar logiskt sett CASE WHEN X THEN Y ELSE Z END
.
iif()
är en förkortning för Omedelbar OM .
iif()
funktion introducerades i SQLite 3.32.0, som släpptes den 22 maj 2020.
Syntax
Syntaxen ser ut så här:
iif(X,Y,Z)
Var:
- X är uttrycket som ska utvärderas.
- Y definierar vad som returneras om utvärderingen av X returnerar sant.
- Z definierar vad som returneras om utvärderingen av X returnerar falskt.
Ett annat sätt att tänka på det är så här:
iif(expr, truepart, falsepart)
Exempel
Här är ett grundläggande exempel för att visa hur iif()
fungerar.
SELECT iif( 1 < 2, "True", "False" );
Resultat:
True
I det här fallet var uttrycket som skulle utvärderas 1 < 2
. Det är sant att 1 är mindre än 2 så det andra argumentet returnerades.
Detta motsvarar att göra följande.
SELECT
CASE WHEN 1 < 2 THEN "True"
ELSE "False"
END;
Resultat:
True
I dessa exempel använde jag orden "Sant" och "False" men jag kunde ha använt vad som helst.
Jag kunde till exempel ha gjort så här istället:
SELECT iif( 1 < 2, "Fail", "Pass" );
Resultat:
Fail
Eller det kan vara något helt borttaget från ett "sant" eller "falskt" svar av binär typ.
Till exempel:
SELECT iif( 1 < 2, "Sticky Rice", "Banana Smoothie" );
Resultat:
Sticky Rice
Databasexempel
Här är ett exempel som använder kolumner från en databas.
SELECT
ProductName,
Qty,
iif( Qty < 10, "Order more", "Sufficient stock" ) AS Notes
FROM Products;
Resultat:
ProductName Qty Notes ----------- ---------- ---------------- Hammer 10 Sufficient stock Saw 5 Order more Wrench 7 Order more Chisel 9 Order more Bandage 70 Sufficient stock