Share via


IIF (NoSQL-Abfrage)

GILT FÜR: NoSQL

Wertet einen booleschen Ausdruck aus und gibt das Ergebnis eines von zwei Ausdrücken abhängig vom Ergebnis des booleschen Ausdrucks zurück. Wenn der boolesche Ausdruck zu true ausgewertet wird, wird die erste Ausdrucksoption zurückgegeben. Andernfalls geben Sie die zweite Ausdrucksoption zurück.

Syntax

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

Argumente

BESCHREIBUNG
bool_expr Ein boolescher Ausdruck, der ausgewertet und verwendet wird, um zu bestimmen, welcher der beiden zusätzlichen Ausdrücke verwendet werden soll.
true_expr Der Ausdruck, der zurückgegeben werden soll, wenn der boolesche Ausdruck zu true ausgewertet wird.
not_true_expr Der Ausdruck, der zurückgegeben werden soll, wenn der boolesche Ausdruck zu NOTtrue ausgewertet wird.

Rückgabetypen

Gibt einen Ausdruck zurück, der von einem beliebigen Typ sein kann.

Beispiele

Dieses erste Beispiel wertet einen statischen booleschen Ausdruck aus und gibt einen von zwei möglichen Ausdrücken zurück.

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 diesem Beispiel wird einer von zwei möglichen Ausdrücken für mehrere Elemente in einem Container auf der Grundlage eines Ausdrucks ausgewertet, der eine boolesche Eigenschaft auswertet.

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

Die Abfrage verwendet Felder in den ursprünglichen Elementen.

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

Bemerkungen

  • Diese Funktion ist vergleichbar mit dem ternären bedingten Operator in verschiedenen Programmiersprachen. Weitere Informationen finden Sie unter ternärer bedingter Operator.
  • Der Index wird von dieser Funktion nicht verwendet.

Weitere Informationen