الانتقال إلى المحتوى الرئيسي

نظرة عامة

تعمل الدوال الحسابية على أي معاملين من النوع UInt8 أو UInt16 أو UInt32 أو UInt64 أو Int8 أو Int16 أو Int32 أو Int64 أو Float32 أو Float64. قبل تنفيذ العملية، يُحوَّل كلا المعاملين إلى نوع النتيجة. ويُحدَّد نوع النتيجة على النحو التالي (ما لم يُذكر خلاف ذلك في توثيق الدالة أدناه):
  • إذا كان عرض كلا المعاملين لا يتجاوز 32 بت، فسيكون حجم نوع النتيجة هو حجم النوع الأكبر التالي بعد أكبر المعاملين (ترقية حجم الأعداد الصحيحة). على سبيل المثال، UInt8 + UInt16 = UInt32 أو Float32 * Float32 = Float64.
  • إذا كان أحد المعاملين بعرض 64 بت أو أكثر، فسيكون حجم نوع النتيجة مساوياً لحجم أكبر المعاملين. على سبيل المثال، UInt32 + UInt128 = UInt128 أو Float32 * Float64 = Float64.
  • إذا كان أحد المعاملين موقَّعاً، فسيكون نوع النتيجة موقَّعاً أيضاً، وإلا فسيكون غير موقَّع. على سبيل المثال، UInt32 * Int32 = Int64 أو UInt32 * UInt32 = UInt64.
تضمن هذه القواعد أن يكون نوع النتيجة أصغر نوع يمكنه تمثيل جميع النتائج الممكنة. ومع أن هذا يضيف احتمال حدوث تجاوز عددي عند حدود نطاق القيم، فإنه يضمن تنفيذ العمليات الحسابية بسرعة باستخدام أكبر عرض أصلي للأعداد الصحيحة، وهو 64 بت. كما يضمن هذا السلوك التوافق مع العديد من قواعد البيانات الأخرى التي توفّر أعداداً صحيحة بطول 64 بت (BIGINT) باعتبارها أكبر نوع للأعداد الصحيحة. مثال:
تحدث حالات تجاوز السعة بالطريقة نفسها كما في C++.

abs

قُدِّمت في: v1.1.0 تحسب القيمة المطلقة لـ x. ولا يكون لها أي تأثير إذا كان x من نوع غير موقَّع. أما إذا كان x من نوع موقَّع، فإنها تُرجع عددًا غير موقَّع. البنية
الوسائط
  • x — القيمة المطلقة المطلوب حسابها لـ x
القيمة المُعادة القيمة المطلقة لـ x أمثلة مثال للاستخدام
Query
Response

avg2

أُضيف في: v25.11.0 يحسب ويُرجع متوسط قيمة المعاملات المُدخلة. يدعم الأنواع العددية والزمنية. البنية
الوسائط
  • x1, x2] — يقبل قيمتين لحساب المتوسط.
القيمة المُعادة تُرجِع متوسط قيم الوسائط المقدَّمة، مع ترقية النوع إلى أكبر نوع متوافق. أمثلة الأنواع العددية
Query
Response
الأنواع العشرية
Query
Response
أنواع Date
Query
Response
أنواع DateTime
Query
Response
أنواع Time64
Query
Response

byteSwap

طُرحت في: v23.10.0 تعكس هذه الدالة بايتات عدد صحيح، أي تغيّر ترتيب البايتات الخاص به. يمكن توضيح المثال أدناه على النحو التالي:
  1. حوِّل العدد الصحيح ذي الأساس 10 إلى ما يقابله بالتنسيق السداسي العشري وبترتيب big-endian، أي 3351772109 -> C7 C7 FB CD (4 بايتات)
  2. اعكس البايتات، أي C7 C7 FB CD -> CD FB C7 C7
  3. حوِّل النتيجة مرة أخرى إلى عدد صحيح بافتراض ترتيب big-endian، أي CD FB C7 C7 -> 3455829959 من حالات استخدام هذه الدالة عكس عناوين IPv4:
الصيغة
المعاملات
  • x — قيمة عدد صحيح. (U)Int*
القيمة المُعادة تُرجع x بعد عكس ترتيب البايتات. (U)Int* أمثلة مثال على الاستخدام
Query
Response
8-بت
Query
Response
16 بت
Query
Response
32 بت
Query
Response
64 بت
Query
Response

divide

أُضيف في: v1.1.0 يحسب ناتج قسمة القيمتين a وb. ويكون نوع النتيجة دائمًا Float64. وتوفّر الدالة intDiv القسمة الصحيحة.
تؤدي القسمة على 0 إلى إرجاع inf أو -inf أو nan.
البنية
المعاملات
  • x — المقسوم - y — المقسوم عليه
القيمة المُعادة ناتج قسمة x على y أمثلة قسمة عددين
Query
Response
القسمة على صفر
Query
Response

divideDecimal

متاح منذ: v22.12.0 يجري قسمة عددين عشريين. تكون القيمة الناتجة من النوع Decimal256. يمكن تحديد مقياس النتيجة صراحةً باستخدام الوسيط result_scale (عدد صحيح ثابت ضمن النطاق [0, 76]). وإذا لم يُحدَّد، فسيكون مقياس النتيجة هو أكبر مقياس بين الوسيطات المُعطاة.
تعمل هذه الدالة بسرعة أبطأ بكثير من divide الاعتيادية. إذا لم تكن بحاجة فعلًا إلى دقة مضبوطة و/أو كنت تحتاج إلى حساب سريع، ففكّر في استخدام divide.
الصياغة
الوسائط
  • x — القيمة الأولى: Decimal. - y — القيمة الثانية: Decimal. - result_scale — مقياس النتيجة. النوع Int/UInt.
القيمة المُعادة ناتج القسمة بالمقياس المحدد. Decimal256 أمثلة مثال 1
Query
Response
مثال 2
Query
Response

divideOrNull

أُضيفت في: v25.5.0 مماثلة لـ divide، لكنها تُرجع NULL عند القسمة على صفر. الصياغة
الوسيطات
  • x — المقسوم - y — المقسوم عليه
القيمة المُعادة حاصل قسمة x على y، أو NULL. أمثلة القسمة على صفر
Query
Response

gcd

قُدِّمت في: v1.1.0 تُرجِع القاسم المشترك الأكبر للقيمتين a و b. يُطرَح استثناء عند القسمة على الصفر أو عند قسمة أصغر عدد سالب على سالب واحد. البنية
الوسيطات
  • x — العدد الصحيح الأول - y — العدد الصحيح الثاني
القيمة المُعادة القاسم المشترك الأكبر لـ x و y. أمثلة مثال على الاستخدام
Query
Response

ifNotFinite

أُضيفت في: v20.3.0 يتحقق مما إذا كانت قيمة الفاصلة العائمة منتهية. يمكنك الحصول على نتيجة مماثلة باستخدام المعامل الثلاثي: isFinite(x) ? x : y. الصيغة
الوسائط
  • x — القيمة المراد التحقق مما إذا كانت لا نهائية. Float*
  • y — القيمة البديلة. Float*
القيمة المُعادة
  • x إذا كانت x منتهية.
  • y إذا كانت x غير منتهية.
أمثلة مثال على الاستخدام
Query
Response

intDiv

أُضيفت في: v1.1.0 تُجري قسمةً صحيحة للقيمتين x وy. وبعبارة أخرى، تحسب خارج القسمة مع التقريب إلى الأسفل إلى أقرب عدد صحيح أصغر. تكون النتيجة بنفس عرض المقسوم (المعلَمة الأولى). يُثار استثناء عند القسمة على الصفر، أو عندما لا يقع خارج القسمة ضمن نطاق المقسوم، أو عند قسمة أصغر عدد سالب ممكن على سالب واحد. الصياغة
الوسيطات
  • x — المعامل الأيسر. - y — المعامل الأيمن.
القيمة المُعادة ناتج القسمة الصحيحة لـ x على y أمثلة القسمة الصحيحة لعددين من النوع Float
Query
Response
ناتج القسمة لا يقع ضمن نطاق المقسوم
Query
Response

intDivOrNull

تم تقديمه في: v25.5.0 مماثلة لـ intDiv، لكنها تُرجع NULL عند القسمة على صفر أو عند قسمة أصغر عدد سالب على سالب واحد. الصياغة
الوسيطات
  • x — المعامل الأيسر. (U)Int*
  • y — المعامل الأيمن. (U)Int*
القيمة المُعادة ناتج القسمة الصحيحة لـ x و y، أو NULL. أمثلة القسمة الصحيحة على الصفر
Query
Response
قسمة أصغر عدد سالب على ‎-1
Query
Response

intDivOrZero

أُضيفت في: v1.1.0 مماثلة لـ intDiv، لكنها تُرجِع صفرًا عند القسمة على صفر أو عند قسمة أصغر عدد صحيح سالب ممكن على سالب واحد. البنية
المعاملات
  • a — المعامل الأيسر. (U)Int*
  • b — المعامل الأيمن. (U)Int*
القيمة المُعادة ناتج القسمة الصحيحة للعددين a وb، أو صفر. أمثلة القسمة الصحيحة على صفر
Query
Response
قسمة أصغر عدد سالب على ‎-1
Query
Response

isFinite

أُضيفت في: v1.1.0 تُرجع 1 إذا كانت الوسيطة من النوع Float32 أو Float64 أو BFloat16 غير لانهائية وليست NaN، وإلا فستُرجع هذه الدالة 0. البنية
الوسيطات
  • x — العدد المراد التحقق مما إذا كان متناهيًا. Float* أو BFloat16
القيمة المُعادة 1 إذا لم تكن قيمة x غير متناهية ولم تكن NaN، وإلا فالقيمة 0. أمثلة اختبر ما إذا كان العدد متناهيًا
Query
Response

isInfinite

أُضيف في: v1.1.0 تُعيد 1 إذا كانت الوسيطة من النوع Float32 أو Float64 أو BFloat16 قيمةً لا نهائية، وإلا فتُعيد هذه الدالة 0. لاحظ أن القيمة 0 تُعاد أيضًا في حالة NaN. البنية
الوسيطات
  • x — العدد المراد التحقق مما إذا كان لا نهائيًا. Float* أو BFloat16
القيمة المُعادة 1 إذا كان x لا نهائيًا، وإلا 0 (بما في ذلك NaN). أمثلة التحقق مما إذا كان العدد لا نهائيًا
Query
Response

isNaN

أُضيفت في: v1.1.0 تعيد 1 إذا كانت الوسيطة من النوع Float32 أو Float64 أو BFloat16 تساوي NaN، وإلا فتعيد 0. الصياغة
الوسائط
  • x — الوسيط المطلوب التحقق مما إذا كانت قيمته NaN. Float* أو BFloat16
القيمة المعادة 1 إذا كانت القيمة NaN، وإلا 0 أمثلة مثال على الاستخدام
Query
Response

lcm

استُحدثت في: v1.1.0 تعيد المضاعف المشترك الأصغر للقيمتين x وy. يُثار استثناء عند القسمة على صفر أو عند قسمة أصغر عدد سالب ممكن على سالب واحد. البنية
المعاملات
  • x — العدد الصحيح الأول. (U)Int*
  • y — العدد الصحيح الثاني. (U)Int*
القيمة المُعادة يعيد المضاعف المشترك الأصغر لـ x وy. (U)Int* أمثلة مثال على الاستخدام
Query
Response

max2

تم تقديمه في: v21.11.0 يعيد القيمة الأكبر بين قيمتين رقميتين x وy. الصيغة
الوسيطات القيمة المُعادة تُرجِع أكبر القيمتين x وy. Float64 أمثلة مثال للاستخدام
Query
Response

midpoint

قُدِّمت في: v25.11.0 تحسب وتُرجع متوسط قيمة الوسيطات المُقدَّمة. تدعم الأنواع العددية والزمنية. البنية
الوسائط
  • x1[, x2, ...] — تقبل قيمة واحدة أو عدة قيم لحساب المتوسط.
القيمة المُعادة تعيد متوسط قيم الوسائط المُدخلة، مع ترقية النوع إلى أكبر نوع متوافق. أمثلة الأنواع العددية
Query
Response
أنواع الأعداد العشرية
Query
Response
أنواع Date
Query
Response
أنواع DateTime
Query
Response
أنواع Time64
Query
Response

min2

أُضيف في: v21.11.0 يُرجع القيمة الأصغر من بين القيمتين العدديتين x وy. الصيغة
الوسيطات القيمة المُعادة تعيد أصغر القيمتين x وy. Float64 أمثلة مثال على الاستخدام
Query
Response

minus

أُضيف في: v1.1.0 يحسب الفرق بين القيمتين a وb. تكون النتيجة دائمًا موقَّعة. وكما في plus، يمكن طرح عدد صحيح من تاريخ أو تاريخ مع وقت. بالإضافة إلى ذلك، يُدعَم الطرح بين قيمتَي تاريخ مع وقت، وينتج عنه الفرق الزمني بينهما. البنية
الوسيطات
  • x — المطروح منه. - y — المطروح.
القيمة المعادة x ناقص y أمثلة طرح عددين
Query
Response
طرح عدد صحيح من تاريخ
Query
Response

modulo

أُضيف في: v1.1.0 يحسب باقي قسمة القيمتين a وb. يكون نوع النتيجة عددًا صحيحًا إذا كان كلا المُدخلين عددين صحيحين. وإذا كان أحد المُدخلين عددًا ذا فاصلة عائمة، فسيكون نوع النتيجة Float64. يُحسب الباقي كما في C++. وتُستخدم القسمة المبتورة مع الأعداد السالبة. يُطلق استثناء عند القسمة على الصفر أو عند قسمة أصغر عدد سالب على سالب واحد. البنية
الأسماء البديلة: mod الوسائط
  • a — المقسوم - b — المقسوم عليه (الموديولس)
القيمة المُعادة الباقي من a % b أمثلة مثال على الاستخدام
Query
Response

moduloLegacy

قُدِّم في: v1.1.0 يحسب باقي القسمة. هذا هو التنفيذ القديم لـ modulo الذي يستخدم العامل % في C++، وقد يُنتج نتائج سالبة عند استخدام وسيطات سالبة. وُجدت هذه الدالة للحفاظ على التوافق مع الإصدارات السابقة لمنطق تقسيم الجدول القديم. استخدم modulo أو positiveModulo للحصول على السلوك القياسي. الصياغة
الوسيطات القيمة المُعادة تعيد ناتج باقي القسمة. (U)Int* أو Float* أمثلة الاستخدام الأساسي
Query
Response

moduloOrNull

أُضيف في: v25.5.0 يحسب remainder عند قسمة a على b. وهو مشابه للدالة modulo، إلا أن moduloOrNull تُرجع NULL إذا كانت الوسيطة اليمنى تساوي 0. البنية
الأسماء البديلة: modOrNull المعاملات القيمة المُعادة تعيد ناتج باقي قسمة x على y، أو NULL إذا كان القاسم صفراً. أمثلة moduloOrNull عندما يكون القاسم صفراً
Query
Response

moduloOrZero

استُحدثت في: v20.3.0 تشبه modulo، لكنها تُرجع صفرًا عندما يكون القاسم صفرًا، بدلًا من إرجاع استثناء كما في الدالة modulo. البنية
الوسيطات القيمة المعادة ترجع باقي قسمة a % b، أو 0 إذا كان المقسوم عليه 0. أمثلة مثال على الاستخدام
Query
Response

multiply

متوفرة منذ: v1.1.0 يحسب حاصل ضرب القيمتين x وy. الصيغة
المعاملات القيمة المُعادة يعيد ناتج ضرب x في y أمثلة ضرب عددين
Query
Response

multiplyDecimal

أُضيف في: v22.12.0 يُجري عملية ضرب على عددين من النوع Decimal. ستكون قيمة النتيجة من النوع Decimal256. يمكن تحديد مقياس النتيجة صراحةً باستخدام الوسيط result_scale (عدد صحيح ثابت ضمن النطاق [0, 76]). وإذا لم يُحدَّد، فسيكون مقياس النتيجة هو أكبر مقياس بين الوسيطات المُعطاة.
تعمل هذه الدوال أبطأ بكثير من multiply العادية. إذا لم تكن بحاجة فعلًا إلى دقة مضبوطة و/أو كنت تحتاج إلى حسابات سريعة، ففكّر في استخدام multiply
البنية
المعاملات
  • a — القيمة الأولى. Decimal
  • b — القيمة الثانية. Decimal
  • result_scale — عدد المنازل العشرية في النتيجة. (U)Int*
القيمة المعادة ناتج الضرب بعدد المنازل العشرية المحدد. النوع: Decimal256 أمثلة مثال على الاستخدام
Query
Response
الاختلاف عن الضرب العادي
Query
Response
فيض Decimal
Query
Response

negate

تمت إضافته في: v1.1.0 يُرجِع نفي الوسيطة x. وتكون النتيجة دائمًا من نوع موقَّع. الصيغة
الوسائط
  • x — القيمة المطلوب عكس إشارتها.
القيمة المعادة يُرجع القيمة -x عند إدخال x أمثلة مثال على الاستخدام
Query
Response

plus

أُضيفت في: v1.1.0 تحسب مجموع القيمتين x وy. الاسم البديل: x + y (المعامل). يمكن أيضًا جمع عدد صحيح مع تاريخ أو تاريخ مع وقت. تزيد العملية الأولى عدد الأيام في التاريخ، بينما تزيد العملية الثانية عدد الثواني في التاريخ مع الوقت. ويمكن أيضًا جمع تاريخ ووقت. تؤدي إضافة Date وTime إلى إنتاج DateTime. كما تؤدي إضافة Date وTime64، أو Date32 و Time أو Time64، إلى إنتاج DateTime64. الصياغة
المعاملات
  • x — المعامل في الطرف الأيسر. - y — المعامل في الطرف الأيمن.
القيمة المُعادة تُرجع مجموع x و y أمثلة جمع عددين
Query
Response
إضافة عدد صحيح إلى تاريخ
Query
Response
إضافة تاريخ ووقت
Query
Response

positiveModulo

أُضيفت في: v22.11.0 تحسب الباقي عند قسمة x على y. وهي مشابهة للدالة modulo، إلا أن positiveModulo تعيد دائمًا عددًا غير سالب. الصيغة
الأسماء البديلة: positive_modulo, pmod الوسيطات القيمة المُعادة تعيد الفرق بين x وأكبر عدد صحيح لا يتجاوز x ويقبل القسمة على y. أمثلة مثال على الاستخدام
Query
Response

positiveModuloOrNull

تم تقديمها في: v25.5.0 تحسب الباقي عند قسمة a على b. وهي مشابهة للدالة positiveModulo، باستثناء أن positiveModuloOrNull تُرجِع NULL إذا كان المعامل الأيمن يساوي 0. الصياغة
الأسماء البديلة: positive_modulo_or_null, pmodOrNull الوسائط القيمة المُعادة تعيد الفرق بين x وأقرب عدد صحيح لا يزيد عن x ويقبل القسمة على y، وتُعيد null عندما يكون القاسم صفراً. أمثلة positiveModuloOrNull
Query
Response
آخر تعديل في ٢ يوليو ٢٠٢٦