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 true döndürülecek ifade. |
not_true_expr |
Boole ifadesi DEĞİl true 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 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.