IIF (requête NoSQL)
S’APPLIQUE À : NoSQL
Évalue une expression booléenne et retourne le résultat de l’une des deux expressions en fonction du résultat de l’expression booléenne. Si l’expression booléenne renvoie la valeur true
, elle retourne la première option d’expression. Sinon, elle retourne la deuxième option d’expression.
Syntaxe
IIF(<bool_expr>, <true_expr>, <not_true_expr>)
Arguments
Description | |
---|---|
bool_expr |
Expression booléenne, qui est évaluée et utilisée pour déterminer laquelle des deux expressions supplémentaires à utiliser. |
true_expr |
Expression à retourner si l’expression booléenne renvoie la valeur true . |
not_true_expr |
Expression à retourner si l’expression booléenne a évalué à NOT true . |
Types de retour
Renvoie une expression, qui peut être de n’importe quel type.
Exemples
Ce premier exemple évalue une expression booléenne statique et retourne l’une des deux expressions potentielles.
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
}
]
Cet exemple évalue l’une des deux expressions potentielles sur plusieurs éléments d’un conteneur en fonction d’une expression qui évalue une propriété booléenne.
[
{
"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
}
}
]
La requête utilise des champs dans les éléments d’origine.
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
}
]
Notes
- Cette fonction est similaire à l’opérateur conditionnel ternaire dans différents langages de programmation. Pour plus d’informations, consultez Opérateur conditionnel ternaire.
- Cette fonction n’utilise pas l’index.