Delen via


IIF (NoSQL-query)

VAN TOEPASSING OP: NoSQL

Evalueert een Boole-expressie en retourneert het resultaat van een van de twee expressies, afhankelijk van het resultaat van de Boole-expressie. Als de Boole-expressie wordt geëvalueerd, retourneert trueu de eerste expressieoptie. Anders retourneert u de tweede expressieoptie.

Syntaxis

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

Argumenten

Beschrijving
bool_expr Een Booleaanse expressie die wordt geëvalueerd en gebruikt om te bepalen welke van de twee aanvullende expressies moet worden gebruikt.
true_expr De expressie die moet worden geretourneerd als de Boole-expressie wordt geëvalueerd.true
not_true_expr De expressie die moet worden geretourneerd als de Booleaanse expressie niet trueis geëvalueerd.

Retourtypen

Retourneert een expressie, die van elk type kan zijn.

Voorbeelden

In dit eerste voorbeeld wordt een statische Booleaanse expressie geëvalueerd en wordt een van de twee mogelijke expressies geretourneerd.

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

In dit voorbeeld wordt een van de twee mogelijke expressies op meerdere items in een container geëvalueerd op basis van een expressie die een booleaanse eigenschap evalueert.

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

De query maakt gebruik van velden in de oorspronkelijke items.

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

Opmerkingen

  • Deze functie is vergelijkbaar met de ternaire voorwaardelijke operator in verschillende programmeertalen. Zie de ternaire voorwaardelijke operator voor meer informatie.
  • Deze functie maakt geen gebruik van de index.

Zie ook