IIF (NoSQL-query)
VAN TOEPASSING OP: NoSQL
Evalueert een Boole-expressie en retourneert het resultaat van een van de twee expressies, afhankelijk van het resultaat van de Boole-expressie. Als de Boole-expressie wordt geëvalueerd, retourneert true
u de eerste expressieoptie. Anders retourneert u de tweede expressieoptie.
Syntaxis
IIF(<bool_expr>, <true_expr>, <not_true_expr>)
Argumenten
Beschrijving | |
---|---|
bool_expr |
Een Booleaanse expressie die wordt geëvalueerd en gebruikt om te bepalen welke van de twee aanvullende expressies moet worden gebruikt. |
true_expr |
De expressie die moet worden geretourneerd als de Boole-expressie wordt geëvalueerd.true |
not_true_expr |
De expressie die moet worden geretourneerd als de Booleaanse expressie niet true is geëvalueerd. |
Retourtypen
Retourneert een expressie, die van elk type kan zijn.
Voorbeelden
In dit eerste voorbeeld wordt een statische Booleaanse expressie geëvalueerd en wordt een van de twee mogelijke expressies geretourneerd.
SELECT VALUE {
evalTrue: IIF(true, 123, 456),
evalFalse: IIF(false, 123, 456),
evalNumberNotTrue: IIF(123, 123, 456),
evalStringNotTrue: IIF("ABC", 123, 456),
evalArrayNotTrue: IIF([1,2,3], 123, 456),
evalObjectNotTrue: IIF({"name": "Alice", "age": 20}, 123, 456)
}
[
{
"evalTrue": 123,
"evalFalse": 456,
"evalNumberNotTrue": 456,
"evalStringNotTrue": 456,
"evalArrayNotTrue": 456,
"evalObjectNotTrue": 456
}
]
In dit voorbeeld wordt een van de twee mogelijke expressies op meerdere items in een container geëvalueerd op basis van een expressie die een booleaanse eigenschap evalueert.
[
{
"name": "Estrel Set Cutlery",
"onSale": true,
"category": "camp-utensils",
"pricing": {
"msrp": 55.95,
"sale": 30.85
}
},
{
"name": "Willagno Spork",
"onSale": false,
"category": "camp-utensils",
"pricing": {
"msrp": 20.15,
"sale": 12.55
}
}
]
De query maakt gebruik van velden in de oorspronkelijke items.
SELECT
p.name,
IIF(p.onSale, p.pricing.sale, p.pricing.msrp) AS price
FROM
products p
WHERE
p.category = "camp-utensils"
[
{
"name": "Estrel Set Cutlery",
"price": 30.85
},
{
"name": "Willagno Spork",
"price": 20.15
}
]
Opmerkingen
- Deze functie is vergelijkbaar met de ternaire voorwaardelijke operator in verschillende programmeertalen. Zie de ternaire voorwaardelijke operator voor meer informatie.
- Deze functie maakt geen gebruik van de index.