IIF (requête NoSQL)

S’APPLIQUE À : NoSQL

Évalue une expression booléenne et retourne le résultat de l’une des deux expressions en fonction du résultat de l’expression booléenne. Si l’expression booléenne renvoie la valeur true, elle retourne la première option d’expression. Sinon, elle retourne la deuxième option d’expression.

Syntaxe

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

Arguments

Description
bool_expr Expression booléenne, qui est évaluée et utilisée pour déterminer laquelle des deux expressions supplémentaires à utiliser.
true_expr Expression à retourner si l’expression booléenne renvoie la valeur true.
not_true_expr Expression à retourner si l’expression booléenne renvoie la valeur NOTtrue.

Types de retour

Renvoie une expression, qui peut être de n’importe quel type.

Exemples

Ce premier exemple évalue une expression booléenne statique et retourne l’une des deux expressions potentielles.

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

Cet exemple évalue l’une des deux expressions potentielles sur plusieurs éléments d’un conteneur en fonction d’une expression qui évalue une propriété booléenne.

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

La requête utilise des champs dans les éléments d’origine.

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

Notes

  • Cette fonction est similaire à l’opérateur conditionnel ternaire dans différents langages de programmation. Pour plus d’informations, consultez Opérateur conditionnel ternaire.
  • Cette fonction n’utilise pas l’index.

Voir aussi