Comparteix a través de


IIF (consulta NoSQL)

SE APLICA A: NoSQL

Evalúa una expresión booleana y devuelve el resultado de una de las dos expresiones en función del resultado de la expresión booleana. Si la expresión booleana se evalúa como true, devuelve la primera opción de expresión. De lo contrario, devuelve la segunda opción de expresión.

Sintaxis

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

Argumentos

Descripción
bool_expr Una expresión booleana, que se evalúa y se usa para determinar cuál de las dos expresiones complementarias usar.
true_expr La expresión que se va a devolver si la expresión booleana se evalúa como true.
not_true_expr Expresión que se va a devolver si la expresión booleana se evalúa como NOT true.

Tipos de valores devueltos

Devuelve una expresión, que podría ser de cualquier tipo.

Ejemplos

Este primer ejemplo evalúa una expresión booleana estática y devuelve una de las dos posibles expresiones.

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

Este ejemplo evalúa una de las dos expresiones posibles en varios elementos de un contenedor en función de una expresión que evalúa una propiedad booleana.

[
  {
    "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 consulta usa campos en los elementos originales.

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

Comentarios

  • Esta función es similar al operador condicional ternario en varios lenguajes de programación. Para saber más, consulte el operador condicional ternario.
  • Esta función del sistema no emplea el índice.

Consulte también