تتيح حسابات الحقل لمالك طبقة الميزة المستضافة أو مسؤول المؤسسة تبديل قيم كل صف في حقل مفرد في جدول بيانات الطبقة.
على سبيل المثال، إذا كان لديك طبقة معلم مستضافة تعمل على تخزين المعلومات على مبيعات الممتلكات - بما في ذلك سعر البيع وسعر الضريبة لموقع الممتلكات- يمكنك إضافة حقل إلى الطبقة لتخزين ضرائب الممتلكات المقدرة. لتعبئة حقل estimated_property_taxes حدد التعبير الحسابي للحقل الذي يأخذ القيم الموجودة في حقل sale_price ويضربها في قيم tax_rate.
لديك خياران عند كتابة تعبيرات الحسابات في الحقول على شكل طبقات في طبقة المعالم المستضافة:
- ArcGIS Arcade—Arcadeهو خيار مثالي للعمليات الحسابية التي تتطلب وظائف أكثر من SQL، إذ يوفر Arcade إمكانية الوصول إلى قيم البيانات الجدولية والأشكال الهندسية للمعالم، مما يتيح لك إنشاء تعبيرات تتضمن عمليات مكانية. بالإضافة إلى ذلك، في حالة حدوث خطأ أثناء حساب صف معين، يمكنك إيقاف المشكلة وإصلاحها وبدء العملية الحسابية من جديد بعد تصحيح المشكلة.
ملاحظة:
لن يتم تحديث ArcGIS API for JavaScript إصدارات 3.44 والإصدارات الأحدث بأحدث ميزات لغة ArcGIS Arcade. تعبيرات Arcade المكتوبة في تطبيقات JavaScript API بالإصدار 3.44 أو الأحدث ستدعم فقط ميزات لغة Arcade المقدمة في Arcade الإصدار 1.21 أو الإصدارات الأقدم. لمعرفة المزيد حول دعم لغة Arcade عبر منتجات ArcGIS، راجع مصفوفة إصدار Arcade.
- SQL—استخدم SQL للحصول على أسرع أداء مع العمليات الحسابية التي يمكن تنفيذها باستخدام تعبيرات SQL (SQL-92) القياسية على سمات غير مكانية. يمكنك تشغيل SQL على طبقات المعالم المستضافة التي تم تمكين المزامنة بها والطبقات التي تم تكوينها لتتبع منشئي المعالم والمحررين، بينما لا يمكنك تشغيل تعبيرات Arcade في مثل هذه الطبقات.
يوضح القسم التالي كيفية حساب قيم الحقل من صفحة العنصر الخاصة بطبقة معالم مستضافة. توفر المقاطع اللاحقة أمثلة للحسابات الشائعة.
حساب قيم الحقل من صفحة العنصر
اتبع هذه الخطوات لحساب قيم حقل سلسلة أو رقمي أو تاريخ في حقل من صفحة عنصر طبقة المعالم.
ملاحظة:
يتعذر التراجع عن عمليات الحقل الحسابية. لهذا السبب، يوصى بإضافة حقل وحساب القيم فيه والتأكد من أن الحساب هو ما تريده. إذا كان الأمر كذلك، يمكنك حساب الحقل الأصلي ليساوي الحقل المضاف. بمجرد تأكيد صحة القيم في الحقل الأصلي، يمكنك حذف الحقل الذي أضفتَه.
- من صفحة عنصر الطبقة، انقر على علامة تبويب البيانات لعرض الجدول.
- انقر على العمود الذي يحتوي على القيم التي تريد حسابها.
- قمْ بتنفيذ أحد الخيارات التالية لفتح مربع حواري حساب الحقل:
- انقر على حساب.
- انقر فوق إظهار عرض تفصيلي > حساب.
- اختر اللغة التي تريد استخدامها في الحساب، إما Arcade أو SQL.
إذا تم تمكين المزامنة على طبقات المعالم المستضافة أو تم تكوينها لتتبع من يقوم بإنشاء المعالم ويقوم بتحديثها، فلن تشاهد هذه الصفحة. وبدلاً من ذلك، تظهر نافذة SQL.
- إنشاء تعبيرحسابي.
- بالنسبة إلى لغة SQL، استخدمْ المشغلات الأساسية، وقائمة الحقل، و الوظائف. انقر على زر التحقق لضمان عدم وجود أخطاء في التعبير. إذا كان التعبير غير صالح، انقر فوق زر الإزالة لإنشاء تعبير جديد. عند اكتمال التعبير والتأكد من صحته، انقر على حساب.
- بالنسبة إلى Arcade، استخدم المتغيرات العامة والوظائف والثوابت. انقر فوق نعم لتشغيل التعبير. في حالة حدوث خطأ عند تشغيل التعبير، يمكنك النقر على مراجعة الخطأ لفتح نافذة التعبير حتى تتمكن من إصلاح الخطأ. بخلاف ذلك، يمكنك النقر على إلغاء. إذا قمت بتصحيح التعبير وتشغيله مرة أخرى، يبدأ العملية الحسابية من جديد.
يعتمد الوقت الذي يستغرقه الحساب حتى يكتمل على مدى تعقيد التعبير وعدد المعالم الموجودة في الطبقة.
أمثلة على الحسابات
توفر المقاطع التالية مثالاً لبناء جملة لتنفيذ العمليات الحسابية الشائعة في ArcGIS Online.
تنفيذ عملية حسابية على قيم رقمية في حقلين حاليين لملء حقل ثالث
إحدى الحسابات الأكثر شيوعًا التي تقوم بها هي اشتقاق قيمة رقمية جديدة استنادًا إلى القيم الموجودة في طبقة المعالم. على سبيل المثال، يمكنك طرح إجماليات مبيعات سنة واحدة لجميع متاجرك من إجماليات المبيعات من سنة أخرى للعثور على التغيير في الأرباح من سنة إلى أخرى، أو قد تقسم إجمالي عدد السكان الذين تقل أعمارهم عن 18 عامًا على إجمالي عدد السكان لتحديد عدد السكان الذين تقل أعمارهم عن 18 عامًا.
أمثلة على Arcade
حساب الفرق بين قيم حقلين رقميين، Sales2016 وSales2017، لملء حقل رقمي.
$feature.Sales2016 - $feature.Sales2017
أمثلة SQL
املأ حقل رقمي برقم عشري يكون ناتجًا عن حساب أي عدد من السكان يقل عمرهم عن 18 عامًا.
PopUnder18/TotalPop
توصيل قيم السلسلة من الحقول الموجودة بحقل سلسلة جديدة
تتضمن عملية حسابية أخرى تقوم بملء حقل جديد يجمع القيم من حقول السلسلة الموجودة. على سبيل المثال، قد يكون لديك حقلي سلسلة لمواقع الغرف في فندق - الأرضية والغرف - وتريد ضمهما إلى حقل سلسلة يحتوي كلاهما.
في الأمثلة التالية، سيتم دمج قيم حقول الأرضية والغرفة في حقل واحد.
مثال لـ Arcade
Concatenate($feature.room,$feature.floor)
مثال SQL
CONCAT(Floor,Room)
إزالة المسافات الزائدة أو البادئة من حقول السلسلة
عندما يقوم المستخدمون بكتابة القيم أو لصقها في حقل أثناء قيامهم بالتحرير، فمن الممكن أن يرتكبوا أخطاء ويتركوا مسافة لاحقة أو بادئة في النص. يمكنك تنظيف هذه الأخطاء عن طريق اقتطاع القيم.
في هذه الأمثلة، تعلم أن المحرر أضاف مسافة زائدة عند لصق نيو هامبشير في الحقل الذي يخزن أسماء الولاية، لذلك ستقوم باقتطاع المسافة من نهاية السلسلة.
مثال لـ Arcade
Trim('New Hampshire ')
مثال SQL
Trim(TRAILING ' ' FROM 'New Hampshire ')
ملء حقل بقيم مختلفة بناءً على القيم الموجودة في حقل آخر
في بعض الأحيان، تختلف القيمة التي تريد إضافتها إلى حقل ما حسب المعلم وتستند إلى قيمة أخرى لنفس المعلم. على سبيل المثال، يمكنك إضافة حقل سلسلة إلى طبقة المعالم لتخزين النص الذي يصف قيمة سلسلة رقمية أو مختصرة في حقل آخر. نظرًا إلى أن واجهة حساب SQL لا تدعم هذا، استخدم Arcade لهذه الأنواع من العمليات الحسابية.
مثال لـ Arcade
وبشكل مشروط، يكتب المثال التالي قيمًا مختلفة للسلسلة النصية - لا شيء أو منخفضة أو مرتفعة أو غير ذلك - إلى حقل نصي استنادًا إلى رقم في حقل آخر في الطبقة (HowMany).
When(
$feature.HowMany == 0, "None",
$feature.HowMany == 1, "Low",
$feature.HowMany == 2, "High",
"Other")
استبدال قيمة واحدة بأخرى
إذا كنت بحاجة إلى استبدال قيمة موجودة بأخرى - على سبيل المثال، إذا تغيرت الطريقة التي تمثل بها قيمة معينة أو تحتاج إلى تصحيح قيم مكتوبة بشكل غير صحيح - يمكنك العثور على جميع القيم الموجودة لحقل ما واستبدالها بقيمة جديدة. نظرًا إلى أن واجهة حساب SQL لا تدعم هذا، استخدم Arcade لهذه الأنواع من العمليات الحسابية.
تنبيه:
يتم حفظ عمليات الحسابات على طبقة المعلم فورًا. إذا قمت بالكتابة فوق قيمة موجودة بالفعل عن طريق الخطأ، فستحتاج إلى الحساب مرة أخرى لتغيير القيمة مرة أخرى.
مثال لـ Arcade
يستخدم هذا المثال وظيفة الاستبدال لتغيير الهجاء البريطاني لكلمة (اللون) إلى الهجاء الأمريكي.Replace($feature.color, 'colour', 'color')
حدد كثافة السمة الرقمية لكل منطقة من مناطق المعالم
لحساب كثافة بيانات جدولية واحدة داخل منطقة ما، استخدم تعبير Arcade، إذ لا يمكنك إجراء عمليات SQL حسابية على الحقل المكاني من واجهة الحساب.
مثال لـ Arcade
يحدد هذا المثال إجمالي عدد السكان لكل معلم من خلال قسمة إجمالي قيمة السكان (TotalPop) على المساحة بالأميال المربعة لمعلم المضلع:
$feature.TotalPop / Area ($feature,
'square-miles')
اشتقاق الإحداثيات لمعلم نقطة
يمكنك استخدام تعبير Arcade لإرجاع إحداثي خط الطول أو خط العرض للحقول المكانية في طبقة معالم مستضافة تحتوي على نقاط فقط.
هذا النوع من الحسابات غير مدعوم في الحقل المكاني من واجهة الحساب.
مثال لـ Arcade
يقوم هذا المثال بحساب حقل إلى الإحداثي السيني لكل نقطة في طبقة نقاط باستخدام وظيفة الشكل الهندسي.
Geometry($feature).x
أضف تاريخ أو اطرح زمنًا من التاريخ
يمكنك إضافة زمن أو طرح زمن من حقل تاريخ أو قيمة حرفية للتاريخ لإنتاج حقل تاريخ مُحدّث. على سبيل المثال، يمكنك حساب فحص مستقبلي أو تاريخ مراجعة مستقبلي بإضافة زمن إلى تاريخ.
مثال لـ Arcade
يستخدم هذا المثال وظيفة DateAdd لإضافة سبعة أيام إلى تاريخ للحصول على تاريخ الأسبوع التالي.var startDate = Date($feature.dateField);
var oneWeekLater = DateAdd(startDate, 7, 'days');
return oneWeekLater;
أمثلة SQL
يمكن استخدام العمليات الحسابية التالية لإضافة زمن أو طرحه من حقل تاريخ أو استخدام قيمة حرفية للتاريخ مدعومة من SQL. تستخدم العملية الأولى حقول تاريخ، وتستخدم العملية الثانية قيم حرفية للتاريخ. يمكن استخدام حقول الأرقام والبيانات الحرفية للرقم. يتم دعم أي مجموعة من الحقول والبيانات الحرفية، كما هو موضح في العمليات الحسابية الثالثة والرابعة.<DateField> +/- <NumberField> = updated date
DATE'<SQL-supported Date Literal>' +/- <Number of Days> = updated date
<DateField> +/- <Number of Days> = updated date
DATE'<SQL-supported Date Literal >' +/- <NumberField> = updated date
حقل التاريخ المحسوب هو التاريخ الأصلي مضافًا إليه أو مطروحًا منه عدد الأيام التي تريد إضافتها أو طرحها. يمكن أن يكون عدد الأيام عددًا كاملاً، وقد يتضمن أيضًا كسرًا، مثل أن يمثل 1.5 يومًا ونصف أو 36 ساعة.
في المثال التالي، تم تركيب جهاز في 6/14/2016 الساعة 10:00 صباحًا. يمكنك استخدام إما العمليات الحسابات التالية لإنتاج شهر واحد للفحص (30 يومًا) بعد تاريخ التركيب المذكور. تستخدم العملية الحسابية الأولى حقل تاريخ بقيمة 6/14/2016 وحقل رقم بقيمة 30، فيما تستخدم العملية الحسابية الثانية بيانات حرفية لتاريخ ولرقم.<MyDateField> + <MyNumberField> = 7/14/2016 10:00 AM
DATE'6/14/2016' + 30 = 7/14/2016 10:00 AM
حساب الاختلاف بين تاريخين
قد تريد حساب طول الوقت بين تاريخين. على سبيل المثال، إذا توفرت لديك تواريخ تركيب عدادات الكهرباء وكذلك تواريخ الفحص، يمكنك حساب الفرق بين التاريخين للتحقق من أن طول الوقت بين التركيب والفحص يقع بين الخطوط الإرشادية المسموح بها. نتيجة الحساب هي حقل رقم بدلاً من حقل تاريخ.
مثال لـ Arcade
يستخدم المثال التالي وظيفة DateDiff لحساب عمر الشخص من خلال إيجاد الفرق بين التاريخ الحالي (endDate) وتاريخ ميلاد هذا الشخص (startDate):var startDate = Date($feature.startDateField);
var endDate = Date($feature.endDateField);
var age = DateDiff(endDate, startDate, 'years');
return age;
أمثلة SQL
يمكن استخدام أي مجموعة من حقول التاريخ والبيانات الحرفية للتاريخ لحساب طول الوقت بين تاريخين. تستخدم العملية الحسابية الأولى حقل تاريخ، فيما تستخدم العملية الثانية بيانات حرفية لتاريخ. تستخدم العمليتين الحسابيتين الثالثة والرابعة حقل تاريخ وبيانات حرفية لتاريخ.<DateField1> - <DateField2> = number of days in between
DATE'<SQL-supported Date Literal>' - DATE'< SQL-supported Date Literal>' = number of days in between
<DateField1> - DATE'<SQL-supported Date Literal>' = number of days in between
DATE'<SQL-supported Date Literal>' - <DateField2> = number of days in between
النتيجة هي حقل رقم يتم حسابه بطرح حقل تاريخ واحد أو بيانات حرفية واحدة من حقل تاريخ آخر أو بيانات حرفية أخرى. يمكن أن تكون نتيجة الأرقام (بالأيام) رقمًا كاملاً، وقد تتضمن أيضًا كسرًا، مثل أن يمثل 1.5 يومًا ونصف أو 36 ساعة.
في مثال عداد الكهرباء الإلكتروني المذكور أعلاه، يمكن استخدام العمليات الحسابية التالية لحساب طول الوقت بين تاريخ التركيب 6/1/2015 وتاريخ الفحص 10/1/2015. تستخدم العملية الحسابية الأولى حقول التاريخ، وتستخدم العملية بيانات حرفية، فيما تستخدم العمليتين الثالثة والرابعة حقل تاريخ وبيانات حرفية لتاريخ.<InspectionDateField> - <InstallationDateField> = 122 (days)
DATE'10/1/2015' - DATE'6/1/2015' = 122 (days)
<InspectionDateField> - DATE'6/1/2015' = 122 (days)
DATE'10/1/2015' - <InstallationDateField> = 122 (days)
أشياء يجب وضعها في الاعتبار عند حساب قيم الحقل
- عند حساب القيم لإحدى الطبقات في Map Viewer Classic وكان لديك عامل تصفية في الطبقة، ستحصل السجلات فقط التي تتطابق مع معايير عامل التصفية على قيمها المحسوبة.
- عند كتابة تعبيرات SQL، يعمل حساب الحقل مع أسماء الحقل فقط، وليس مع الأسماء المستعارة للحقل. تظهر قائمة الحقول جميع أسماء الحقول المتاحة للعمليات الحسابية. يُمكن تصفية القائمة تبعًا لأنواع الحقل السلسلةو رقميو تاريخ.
- عند التحويم حول اسم الحقل في قائمة الحقول سيتم عرض الاسم المستعار للحقل وكذلك نوع الحقل.
- عند النقر على اسم الحقل في قائمة الحقول ستتم إضافة الحقل إلى التعبير.
- يتعذر عليك حساب قيم حقول في نسخ من طبقات المعالم المستضافة أو لطبقات المعالم المستضافة التي تضم طبقات تجانب ذات صلة.
- لا يتم نشر القيم المحسوبة من طبقة أو عرض المعالم المستضافة إلى طبقات مشاهد مستضافة تابعة.
- لا يتم دعم التنسيق ذو الإعدادات المحلية المحددة للأرقام في تعبيرات SQL. على سبيل المثال، يجب عليك استخدام فاصل علامة عشرية لقيم جدول بيانات بدلاً من فاصل عشري عند تعيين الإعدادات المحلية إلى "إسبانيا".
- يتعذر عليك استخدام دالة MOD الرقمية في حقول مزدوجة. إرسال الحقل إلى عدد صحيح كما هو معروض في المثال.
- لا يمكنك كتابة تعبيرات Arcade لطبقات المعالم المستضافة التي تم تمكين المزامنة بها أو التي تم تكوينها لتتبع الأشخاص الذين قاموا بإنشاء المعالم وأجروا آخر تحديث لها.
- يتعذر عليك استخدام Arcade لحساب القيم لأنواع بيانات الحقل التالية في صفحة عنصر طبقة المعالم:
- عدد صحيح كبير
- تاريخ فقط
- الوقت فقط
- إزاحة الطابع الزمني
ملاحظة:
عندما تحتوي أي طبقة في طبقة المعالم المستضافة على هذه الأنواع من البيانات، Arcadeيتم تعطيل العمليات الحسابية لطبقة المعالم المستضافة بأكملها، حتى إذا لم تحتوي الطبقات الفرعية على أنواع بيانات غير مدعومة.
مرجع SQL القياسي (SQL-92)
عند كتابة أحد تعبيرات SQL لحساب قيم الحقل، استخدم SQL قياسيًا. يقدم هذا القسم قائمة بالمشغلات ووظائف SQL التي يمكنك استخدامها لحسابات SQL في ArcGIS Online.
بعد إنشائك تعبير SQL، انقر فوق الزر حساب. إن وُجد أي خطأ، تظهر رسالة خطأ أدنى مربع الحوار. قم بتصحيح صيغة التعبير واحسب مرة أخرى.
العوامل
فوق مربع الحوار حساب الحقل ، يمكنك إنشاء تعبيرات SQL البسيطة باستخدام المشغلات مثل: زائد، ناقص، ضرب، قسمة. فيما يلي أمثلة ونصائح لاستخدام هذه المشغلات:
- لضرب جميع القيم في حقل رقمي باسم SAMPLE في 100.0، اكتبSAMPLE * 100.0 في التعبير.
- لمزيد من المعادلات المعقدة، يمكنك استخدام الأقواس لتحديد ترتيب العمليات الحسابية، مثل SAMPLE * (BASELINE - 40).
- لا تعمل عوامل تشغيل الرياضة مع حقول السلسلة. يجب عليك استخدام دوال السلسلة الموضحة في قسم دوال السلسلة.
- عند حساب حقل نوع مضروب في حقل نوع العدد الصحيح، يتم إضافة دالة CAST تلقائيًا إلى التعبير. مثال، عند حساب حقل مزدوج اسمه POP بحقل عدد صحيح اسمه SAMPLEو سيظهر التعبير بصفته CAST(SAMPLE AS FLOAT). لا تقم بإزالة دالة CAST. راجع موضوع الدالات الرقمية أدناه للمعلومات الخاصة بدالة CAST.
- لتضمين فاصلة عليا في السلسلة، استخدم علامتي اقتباس مفردتين للفاصلة العليا. على سبيل المثال، 'Nightingale''s'. لا تستخدم علامة اقتباس مزدوجة.
الدوال
بالإضافة إلى التعبيرات البسيطة التي تَستخدم المشغلات، يمكنك أيضًا استخدام الدوال لإنشاء تعبيرات SQL. تتعامل الدالات مع أسماء الحقل والبيانات الحرفية والدالات الأخرى. مثال، افترض أنك بحاجة إلى حساب حقل مزدوج لينقسم TOTALPOP على POP18. إذا كان لأي حقل POP18 مُساوي إلى صفر، ستكون نتيجة الحساب في خطأ القسمة على صفر. يُمكن حماية ذلك باستخدام دالة NULLIF المذكورة أدناه. سيكون التعبير TOTALPOP / NULLIF(POP18, 0).
تحصل الدلات على الوسيطات. في الجداول المُوضحة أدناه، يُمكن أن تكون أي وسيطة كما يلي:
- اسم الحقل، بالإضافة إلى نوع الحقل يتطابق مع نوع الوسيطة (سلسلة أو الرقم أو التاريخ).
- القيمة الحرفية، مثل 'Sailboat' (سلسلة مُحاطة بعلامات اقتباس فردية)، العدد 5، أو تاريخ بتنسيق شهر/يوم/سنة ساعة:دقيقة:ثانية، أو وقت بتنسيق ساعة:دقيقة:ثانية، المُحاطة بعلامات اقتباس فردية.
- الدالة التي ترجع قيمة النوع المناسب (سلسلة أو رقم أو تاريخ). مثال، FLOOR(POWER(SAMP_ERR, 0.5)) يُرجع أكبر عدد صحيح أقل من أو يساوي الجذر المربع لـ SAMP_ERR.
ولأغراض التوضيح، تستخدم الأمثلة في عمود وصف الجداول التالية الوسيطات الحرفية بكثرة. يمكن استبدال اسم الحقل أو دالة أخرى لتلك الوسيطات.
دالات التاريخ
يمكن تنفيذ عمليات حسابية عديدة في حقول التاريخ. على سبيل المثال، يمكنك إضافة زمن أو طرحه من حقل التاريخ أو حساب الفرق بين حقلي بيانات.
قبل التعامل مع حقول التاريخ، اقرأ هذه الاعتبارات الهامة.
يمكنك استخدام أي مجموعة من حقول التاريخ والأرقام والبيانات الحرفية عند حساب حقول التاريخ. عند استخدام البيانات الحرفية للتاريخ، يجب استخدام تنسيقات بيانات مدعومة من SQL.
تتوفر دالات البيانات التالية:
وظيفة | الوصف |
---|---|
CURRENT_DATE() | يُرجع التاريخ الحالي في زمن UTC. تعتمد القيمة المعروضة على العميل الذي تستخدمه. في ArcGIS Online، تظهر التواريخ في المنطقة الزمنية لمؤسستك أو ملفك الشخصي. |
CURRENT_TIME() | يُرجع تاريخ وزمن UTC الحالي (ساعات ودقائق وثواني). تعتمد القيمة المعروضة على العميل الذي تستخدمه. في ArcGIS Online، يتم عرض الوقت بالتوقيت المحلي لمؤسستك أو ملفك الشخصي. |
CURRENT_TIMESTAMP() | يُرجع تاريخ وزمن UTC الحالي (ساعات ودقائق وثواني وميلي ثانية). تعتمد القيمة المعروضة على العميل الذي تستخدمه. في ArcGIS Online، يتم عرض الوقت بالتوقيت المحلي لمؤسستك أو ملفك الشخصي. |
EXTRACT(<unit> FROM <date>) | يرجع جزء واحد (<unit>) من <date> المحدد. تشمل قيم <unit> الممكنة، على سبيل المثال لا الحصر، year وmonth وday وhour وminute. تستخرج الأمثلة التالية وحدات مختلفة من قيمة التاريخ والوقت 2016-12-21 15:11:
|
دالات الرقمية
وظيفة | الوصف |
---|---|
ABS(<number>) | إرجاع القيمة المطلقة (موجبة) للعدد الذي تحدده. |
CAST(<number> AS FLOAT | INT) | يُحول الرقم إلى نوع مختلف. تحوِّل دالة FLOAT الرقم المحدد إلى رقم مزدوج، كما تحوله دالة INT إلى عدد صحيح. في المثال الأول أدناه، يتم تحويل الرقم إلى عدد صحيح. ولأن الأعداد الصحيحة هي أعداد كلية، فإن الناتج هو 1424. في المثال الثاني، يتم تحويل عدد صحيح إلى عدد عشري، مما ينتج رقمًا به مواضع عشرية، 1424.0
|
CEILING(<number>) | إرجاع أصغر عدد صحيح أكبر من أو يساوي العدد المحدد. يُرجع المثال التالي الرقم 13: CEILING(12.93) |
COS(<number>) | تُرجع جيب التمام المثلثي لـ <number>، المُفترض أن يكون زاوية في التقديرات الدائرية. |
FLOOR(<number>) | يُرجع أكبر عدد صحيح أقل من أو يساوي الرقم المحدد. يُرجع المثال التالي الرقم 12: FLOOR(12.93) |
LOG(<number>) | اللوغاريتم الطبيعي للرقم المحدد. |
LOG10(<number>) | اللوغاريتم بأساس 10 للرقم المحدد. |
MOD(<number>, <n>) | إرجاع المتبقي بعد قسمة (<number>) المقسوم على المقسوم عليه <n>. يجب أن يكون كلا من <n> و<number> بنوع عدد صحيح. تتضمن الأمثلة ما يلي:
|
NULLIF(<number>, <value>) | تُرجع null إذا كان الرقم المحدد يساوي القيمة المحددة. يتم استخدام NULLIF بشكل شائع لتجنّب أخطاء القسمة على صفر بواسطة إعداد <value> على 0. أينما تواجه عملية حسابية قيمة حقل null في أي من وسائطها، تصبح نتيجة العملية الحسابية null. مثال، افترض أنك بحاجة إلى حساب حقل مزدوج لينقسم TOTALPOP على POP18. إذا كان لأي معلم قيمة POP18 تساوي صفرًا، فسينتج عن العملية الحسابية خطأ القسمة على صفر. يمكنك إنشاء عامل تصفية لإخفاء السجلات التي يكون فيها POP18 صفرًا، ومن ثم إجراء العملية الحسابية. اختصار لاستخدام NULLIF: TOTALPOP / NULLIF(POP18, 0) - تُرجع null إذا كان POP18 يساوي صفرًا؛ وإلا، يتم إرجاع قيمة TOTALPOP / POP18. |
POWER(<number> , <y>) | تُرجع قيمة العدد المحدد مرفوعًا إلى القوة المحددة (<y>). يُرجع المثال التالي الرقم 32768: POWER(8,5) |
ROUND(<number> , <length>) | يُرجع الرقم الذي تحدده إلى الطول المُحدد. إذا استخدمتَ رقمًا موجبًا لـ <length>، فسيتم تقريب الرقم إلى الموضع العشري على يمين النقطة العشرية. عندما يكون <length> رقمًا سالبًا، يتم تقريب <number> المحدد على يسار النقطة العشرية. فيما يلي أمثلة على ذلك:
|
SIN(<number>) | تُرجع جيب الزاوية المثلثي لـ <number> المحدد، والذي يُفتَرَض أن يكون زاوية في التقديرات الدائرية. |
TAN(<number>) | تُرجع مماس <number> المحدد، والذي يُفتَرَض أن يكون زاوية في التقديرات الدائرية. |
TRUNCATE(<number>,<decimal_place>) | اقتطاع <number> عند <decimal_place> المحدد. يقتطع <decimal_place> الموجب الموضع العشري المُحدد. عندما يكون <decimal_place> رقمًا سالبًا، يتم اقتطاع <number> في الجانب الأيسر من النقطة العشرية. في المثال الأول، تم اقتطاع الأرقام الموجودة على يمين العلامة العشرية لتشمل رقمين فقط، مما ينتج القيمة 111.99. في المثال الثاني، يتم اقتطاع الأرقام الموجودة على يسار العلامة العشرية، مما ينتج القيمة 100.00.
|
دالات السلسلة
وظيفة | الوصف |
---|---|
CAST(<string> AS DATE | TIME) | تحويل السلسلة إلى تاريخ أو وقت إذا كانت قيمة السلسلة بتنسيق مدعوم. إذا كانت السلسلة بتنسيق 'شهر/يوم/سنة ساعة:دقيقة:ثانية' أو 'سنة-شهر-يوم'، يمكنك تحويلها إلى تاريخ. إذا كانت السلسلة بتنسيق 'ساعة:دقيقة:ثانية'، يمكنك تحويلها إلى نوع تاريخ الوقت فقط (TIME). على سبيل المثال، يمكن تحويل السلسلة التالية إلى تاريخ: CAST('1988-05-30' AS DATE) |
CHAR_LENGTH(<string>) | إرجاع عدد الأحرف في السلسلة المحددة. تكون النتيجة عدد صحيح. على سبيل المثال، تُرجع العبارة التالية الرقم 8: CHAR_LENGTH('Redlands') |
CONCAT(<string1>, <string2>) | تسلسل قيمتي سلسلة. يُمكن توفير سلسلتين فقط. لتسلسل أكثر من سلسلتين، قم بتضمين دالتي CONCAT المتتاليتين، كما هو مُوضح أدناه. المثال الأول أدناه يربط بين الحرفين A وB. يوضح المثال الثاني دالة CONCAT متداخلة لربط ثلاث قيم سلسلة، A، و:، وB.
يتم تحويل القيم الخالية إلى سلسلة فارغة. |
CURRENT_USER | عندما يتم تضمين دالة CURRENT_USER في استعلام، فإنها تعمل بشكل مشابه للمتغير؛ ويتم تحديد اسم المستخدم للمستخدم الذي يقوم بالوصول إلى طبقة المعالم المستضافة أو عرض طبقة المعالم المستضافة واستخدامه في الاستعلام. على سبيل المثال، إذا قام المستخدم، planner3، بتسجيل الدخول إلى المؤسسة للوصول إلى عرض طبقة المعالم المستضافة الذي يحتوي على تعريف الاستعلام التالي، فسيتم إرجاع المعالم التي يحتوي حقل staffmember فيها على القيمة planner3 فقط إلى المستخدم المتصل: staffmember=current_user في المثال التالي، يتم تخزين قيم متعددة في الحقل staffmember. ستعمل عبارة where التالية بالبحث عن اسم المستخدم الحالي في قيمة النص في حقل staffmember حتى إذا تم تخزين أسماء مستخدمين متعددة في الحقل: where=position(current_user in staffmember)>0 |
POSITION(<substring>, <string>) | إرجاع موضع الحدث الأول للسلسة الفرعية المحددة في السلسلة التي تحددها. إن لم يتم العثور على السلسلة الفرعية، فإن النتيجة ستكون 0. في المثال الأول أدناه، الناتج هو 5 لأن الحرف الأول (b) من السلسلة الفرعية (boat) هو الحرف الخامس في السلسلة (Sailboat). في المثال الثاني، الناتج هو 0، لأن السلسلة الفرعية (motor) غير موجودة في السلسلة.
|
SUBSTRING(<string>, <start>, <length>) | تُرجع جزء من قيمة سلسلة، <start> هو فهرس عدد صحيح يُحدد مكان بدء الأحرف التي تم إرجاعها، كما يعد <length> عدد الأحرف المطلوب إرجاعها. راجع الأمثلة التالية:
|
TRIM(BOTH | LEADING | TRAILING ' ' FROM <string>) | إرجاع سلسلة حيث تتم إزالة جميع المسافات البادئة أو اللاحقة من السلسلة التي تحددها. في المثال التالي، توجد مسافة قبل السلسلة San Bernardino وبعدها. يتم استخدام الكلمة الأساسية BOTH لتقليص سلسلة المسافة (المشار إليها باستخدام علامتي اقتباس مفردتين مع مسافة بينهما) من بداية سلسلة النص ونهايتها: TRIM(BOTH ' ' FROM ' San Bernardino ') يؤدي ذلك إلى إرجاع السلسلة 'San Bernardino'. |
UPPER(<string>) | إرجاع سلسلة حيث يتم تحويل جميع الأحرف إلى أحرف كبيرة. في هذا المثال، يتم تحويل جميع الأحرف في سلسلة Sailboat إلى أحرف كبيرة، مما ينتج السلسلة 'SAILBOAT': UPPER('Sailboat') |
LOWER(<string>) | إرجاع سلسلة حيث يتم تحويل جميع الأحرف إلى أحرف صغيرة. في المثال التالي، يتم إرجاع 'sailboat': LOWER('Sailboat') |