IIF (استعلام NoSQL)

ينطبق على: NoSQL

تقييم تعبير منطقي وإرجاع نتيجة أحد التعبيرين اعتمادا على نتيجة التعبير المنطقي. إذا تم تقييم التعبير المنطقي إلى true، فأرجع خيار التعبير الأول. وإلا، قم بإعادة خيار التعبير الثاني.

بناء الجملة

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

الوسيطات

الوصف
bool_expr تعبير منطقي، يتم تقييمه واستخدامه لتحديد أي من التعبيرين التكميليين لاستخدامهما.
true_expr التعبير المراد إرجاعه إذا تم تقييم التعبير المنطقي إلى true.
not_true_expr التعبير المراد إرجاعه إذا تم تقييم التعبير المنطقي إلى NOTtrue.

أنواع الإرجاع

إرجاع تعبير، والذي يمكن أن يكون من أي نوع.

أمثلة

يقيم هذا المثال الأول تعبيرا منطقيا ثابتا ويعيد أحد التعبيرين المحتملين.

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

يقيم هذا المثال أحد التعبيرين المحتملين على عناصر متعددة في حاوية استنادا إلى تعبير يقيم خاصية منطقية.

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

يستخدم الاستعلام الحقول في العناصر الأصلية.

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

الملاحظات

  • تشبه هذه الدالة عامل التشغيل الشرطي الثلاثي بلغات البرمجة المختلفة. لمزيد من المعلومات، راجع عامل التشغيل الشرطي الثلاثي.
  • لا تستخدم هذه الدالة الفهرس.

راجع أيضًا