IIF (NoSQL 查詢)

適用於:NoSQL

評估布林運算式,並根據布林運算式的結果傳回兩個運算式之一的結果。 如果布林運算式評估為 true ,則傳回第一個運算式選項。 否則,傳回第二個運算式選項。

語法

IIF(<bool_expr>, <true_expr>, <not_true_expr>)

引數

描述
bool_expr 布林運算式,會評估並用來判斷要使用的兩個補充運算式之哪一個。
true_expr 布林運算式評估為 true 時要傳回的運算式。
not_true_expr 布林運算式評估為NOTtrue 時,要傳回的運算式。

傳回類型

傳回可以是任何類型的運算式。

範例

第一個範例會評估靜態布林運算式,並傳回兩個可能運算式的其中一個。

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
  }
]

備註

  • 此函式類似于各種程式設計語言中的三元條件運算子。 如需詳細資訊,請參閱 三元條件運算子
  • 此函式不會利用索引。

另請參閱