IIF (NoSQL クエリ)

適用対象: NoSQL

ブール式を評価して、2 つの式の一方の結果を、ブール式の結果に応じて返します。 ブール式が true に評価された場合は、最初の式の選択肢を返します。 それ以外の場合は、2 番目の式の選択肢を返します。

構文

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

引数

説明
bool_expr ブール式。評価されて、2 つの補足式のうちどちらを使用するかを決定するために使用されます。
true_expr ブール式が true に評価された場合に返す式。
not_true_expr ブール式が trueではないと評価された場合に返す式。

戻り値の型

任意の型になりうる式を返します。

この最初の例では、静的なブール式を評価し、2 つの潜在的な式の一方を返します。

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

次の例は、ブール値プロパティを評価する式に基づいて、コンテナー内の複数の項目に対する 2 つの潜在的な式の一方を評価します。

[
  {
    "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
  }
]

注釈

  • この関数は、さまざまなプログラミング言語における三項条件演算子に似ています。 詳細については、「三項条件演算子」を参照してください。
  • この関数で、インデックスは使用されません。

関連項目