IIF (NoSQL sorgusu)

UYGULANANLAR: NoSQL

Boole ifadesini değerlendirir ve boole ifadesinin sonucuna bağlı olarak iki ifadeden birinin sonucunu döndürür. Boole ifadesi olarak değerlendirilirse true, ilk ifade seçeneğini döndürür. Aksi takdirde, ikinci ifade seçeneğini döndürür.

Söz dizimi

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

Bağımsız değişkenler

Açıklama
bool_expr Değerlendirilen ve iki ek ifadeden hangisinin kullanılacağını belirlemek için kullanılan boole ifadesi.
true_expr Boole ifadesi olarak değerlendirilirse truedöndürülecek ifade.
not_true_expr Boole ifadesi DEĞİl trueolarak değerlendirilirse döndürülecek ifade.

Dönüş türleri

Herhangi bir türde olabilecek bir ifade döndürür.

Örnekler

Bu ilk örnek statik boole ifadesini değerlendirir ve iki olası ifadeden birini döndürür.

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

Bu örnek, bir boole özelliğini değerlendiren bir ifadeye göre kapsayıcıdaki birden çok öğedeki iki olası ifadeden birini değerlendirir.

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

Sorgu, özgün öğelerdeki alanları kullanır.

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

Açıklamalar

  • Bu işlev, çeşitli programlama dillerindeki üçüncül koşullu işlece benzerdir. Daha fazla bilgi için bkz . üçüncül koşullu işleç.
  • Bu işlev dizini kullanmaz.

Ayrıca bkz.