Udostępnij za pośrednictwem


IIF (zapytanie NoSQL)

DOTYCZY: NoSQL

Oblicza wyrażenie logiczne i zwraca wynik jednego z dwóch wyrażeń w zależności od wyniku wyrażenia logicznego. Jeśli wyrażenie logiczne zwróci truewartość , zwróć pierwszą opcję wyrażenia. W przeciwnym razie zwróć drugą opcję wyrażenia.

Składnia

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

Argumenty

opis
bool_expr Wyrażenie logiczne, które jest obliczane i używane do określania, które z dwóch wyrażeń uzupełniających mają być używane.
true_expr Wyrażenie, które ma zostać zwrócone, jeśli wyrażenie logiczne obliczone na truewartość .
not_true_expr Wyrażenie, które ma zostać zwrócone, jeśli wyrażenie logiczne obliczone na wartość NOT true.

Typy zwracane

Zwraca wyrażenie, które może być dowolnego typu.

Przykłady

Ten pierwszy przykład oblicza statyczne wyrażenie logiczne i zwraca jedno z dwóch potencjalnych wyrażeń.

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

W tym przykładzie ocenia się jedno z dwóch potencjalnych wyrażeń na wielu elementach w kontenerze na podstawie wyrażenia, które oblicza właściwość logiczną.

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

Zapytanie używa pól w oryginalnych elementach.

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

Uwagi

  • Ta funkcja jest podobna doternargumentowego operatora warunkowego w różnych językach programowania. Aby uzyskać więcej informacji, zobaczternary operator warunkowy.
  • Ta funkcja nie korzysta z indeksu.

Zobacz też