IIF (NoSQL 查詢)
適用於:NoSQL
評估布爾表達式,並根據布爾表達式的結果傳回兩個表達式之一的結果。 如果布爾表達式評估為 true
,則傳回第一個表達式選項。 否則,傳回第二個表達式選項。
語法
IIF(<bool_expr>, <true_expr>, <not_true_expr>)
引數
描述 | |
---|---|
bool_expr |
布爾表達式,會進行評估,並用來判斷要使用的兩個補充表達式中的哪一個。 |
true_expr |
如果布爾表達式評估為 true ,則傳回的表達式。 |
not_true_expr |
如果布爾表達式評估為 NOT true ,則傳回的表達式。 |
傳回類型
傳回表達式,其可以是任何類型。
範例
第一個範例會評估靜態布爾表達式,並傳回兩個可能表達式的其中一個。
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
}
]
此範例會根據評估布爾屬性的表達式,評估容器中多個專案的兩個可能表達式之一。
[
{
"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
}
}
]
查詢會使用原始專案中的欄位。
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
}
]
備註
- 此函式類似於各種程式設計語言中的三元條件運算符。 如需詳細資訊,請參閱 三元條件運算符。
- 此函式不會使用索引。