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

Комментарии

  • Эта функция похожа на тернарный условный оператор в различных языках программирования. Дополнительные сведения см. в разделе Тернарный условный оператор.
  • Эта функция не использует индекс.

См. также раздел