التعبيرات العددية في Azure Cosmos DB ل NoSQL

ينطبق على: NoSQL

تدعم العبارة SELECT التعبيرات العددية. التعبير القياسي هو مجموعة من الرموز والعوامل التي يمكن تقييمها للحصول على قيمة واحدة. تتضمن أمثلة التعبيرات العددية: الثوابت أو مراجع الخصائص أو مراجع عنصر الصفيف أو مراجع الاسم المستعار أو استدعاءات الوظائف. يمكن دمج التعبيرات العددية في تعبيرات معقدة باستخدام عوامل التشغيل.

بناء الجملة

<scalar_expression> ::=  
       <constant>
     | input_alias
     | parameter_name  
     | <scalar_expression>.property_name  
     | <scalar_expression>'['"property_name"|array_index']'  
     | unary_operator <scalar_expression>  
     | <scalar_expression> binary_operator <scalar_expression>    
     | <scalar_expression> ? <scalar_expression> : <scalar_expression>  
     | <scalar_function_expression>  
     | <create_object_expression>
     | <create_array_expression>  
     | (<scalar_expression>)
  
<scalar_function_expression> ::=  
        'udf.' Udf_scalar_function([<scalar_expression>][,…n])  
        | builtin_scalar_function([<scalar_expression>][,…n])  
  
<create_object_expression> ::=  
   '{' [{property_name | "property_name"} : <scalar_expression>][,…n] '}'  
  
<create_array_expression> ::=  
   '[' [<scalar_expression>][,…n] ']'

الوسيطات

‏‏الوصف
<constant> يمثل قيمة ثابتة. راجع قسم الثوابت للحصول على التفاصيل.
input_alias يمثل قيمة محددة بواسطة input_alias المقدمة في جملة FROM.
هذه القيمة مضمونة بحيث لا تكون غير محددة - تم تخطي القيم غير المحددة في الإدخال.
<scalar_expression>.property_name يمثل قيمة ممتلكات الكائن. إذا لم تكن الخاصية موجودة أو تمت الإشارة إلى الخاصية على قيمة، وهي ليست كائنا، تقييم التعبير إلى قيمة غير معرفة .
<scalar_expression>'['"property_name"|array_index']' يمثل قيمة للخاصية بالاسم property_name أو عنصر مصفوفة بفهرس array_index مصفوفة. إذا لم يكن فهرس الخاصية/الصفيف موجودا أو تمت الإشارة إلى فهرس الخاصية/الصفيف على قيمة ليست كائنا/صفيفا، تقييم التعبير إلى قيمة غير معرفة.
unary_operator <scalar_expression> يمثل عاملاً يتم تطبيقه على قيمة واحدة.
<scalar_expression> binary_operator <scalar_expression> يمثل عاملاً يتم تطبيقه على قيمتين.
<scalar_function_expression> يمثل قيمة محددة نتيجة استدعاء دالة.
udf_scalar_function اسم الدالة العددية المعرفة من قبل المستخدم.
builtin_scalar_function اسم الوظيفة العددية المضمنة.
<create_object_expression> يمثل قيمة تم الحصول عليها عن طريق إنشاء كائن جديد بخصائص محددة وقيمها.
<create_array_expression> يمثل قيمة تم الحصول عليها عن طريق إنشاء مصفوفة جديدة بقيم محددة كعناصر
parameter_name يمثل قيمة اسم المعلمة المقصودة. يجب أن تحتوي أسماء المعلمات على @ واحد كحرف أول.

الأمثلة

المثال الأكثر شيوعا للتعبير العددي هو معادلة رياضية.

SELECT VALUE
    ((2 + 11 % 7) - 2) / 2
[
  2
]

في هذا المثال التالي، تكون نتيجة التعبير العددي منطقية:

SELECT
    ("Redmond" = "WA") AS isCitySameAsState,
    ("WA" = "WA") AS isStateSameAsState
[
  {
    "isCitySameAsState": false,
    "isStateSameAsState": true
  }
]

الملاحظات

  • يجب تعريف كافة الوسيطات عند استدعاء دالة عددية مضمنة أو معرفة من قبل المستخدم. إذا لم يتم تعريف أي من الوسيطات، فلن يتم استدعاء الدالة، والنتيجة هي undefined.
  • يتم تخطي أي خاصية تم تعيين قيمة غير معرفة لها ولا يتم تضمينها في الكائن الذي تم إنشاؤه عند إنشاء كائن.
  • يتم تخطي أي قيمة عنصر تم تعيينها لقيمة غير معرفة ولا يتم تضمينها في الكائن الذي تم إنشاؤه عند إنشاء صفيف. يؤدي هذا التخطي إلى أن يأخذ العنصر المعرف التالي مكانه بطريقة لا يتخطى الصفيف الذي تم إنشاؤه الفهارس.