Share via


IIF (NoSQL sorgusu)

ŞUNUN IÇIN GEÇERLIDIR: 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.

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Ğİltrue olarak 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 dayalı olarak kapsayıcıdaki birden çok öğe üzerinde 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şleçle benzerdir. Daha fazla bilgi için bkz . üçüncül koşullu işleç.
  • Bu işlev dizini kullanmaz.

Ayrıca bkz.