Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
APPLIES TO:
NoSQL
Evaluates a boolean expression and returns the result of one of two expressions depending on the result of the boolean expression. If the boolean expression evaluates to true, return the first expression option. Otherwise, return the second expression option.
Syntax
IIF(<bool_expr>, <true_expr>, <not_true_expr>)
Arguments
| Description | |
|---|---|
bool_expr |
A boolean expression, which is evaluated and used to determine which of the two supplemental expressions to use. |
true_expr |
The expression to return if the boolean expression evaluated to true. |
not_true_expr |
The expression to return if the boolean expression evaluated to NOT true. |
Return types
Returns an expression, which could be of any type.
Examples
This first example evaluates a static boolean expression and returns one of two potential expressions.
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
}
]
This example evaluates one of two potential expressions on multiple items in a container based on an expression that evaluates a boolean property.
[
{
"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
}
}
]
The query uses fields in the original 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
}
]
Remarks
- This function is similar to the ternary conditional operator in various programming languages. For more information, see ternary conditional operator.
- This function doesn't utilize the index.