Skip To Content

حساب قيم الحقل

تتيح حسابات الحقل لمالك طبقة الميزة المستضافة أو مسؤول المؤسسة تبديل قيم كل صف في حقل مفرد في جدول بيانات الطبقة.

على سبيل المثال، إذا كان لديك طبقة معلم مستضافة تعمل على تخزين المعلومات على مبيعات الممتلكات - بما في ذلك سعر البيع وسعر الضريبة لموقع الممتلكات- يمكنك إضافة حقل إلى الطبقة لتخزين ضرائب الممتلكات المقدرة. لتعبئة حقل estimated_property_taxes حدد التعبير الحسابي للحقل الذي يأخذ القيم الموجودة في حقل sale_price ويضربها في قيم tax_rate.

لديك خياران عند كتابة تعبيرات الحسابات في الحقول على شكل طبقات في طبقة المعالم المستضافة:

  • Arcade—Arcade هو الخيار المثالي للحسابات التي تتطلب وظائف أكثر من SQL ، حيث يوفر Arcade الوصول إلى قيم السمات والأشكال الهندسية للمعالم، مما يسمح لك بإنشاء تعبيرات تتضمن عمليات مكانية. بالإضافة إلى ذلك، في حالة حدوث خطأ أثناء حساب صف معين، يمكنك إيقاف المشكلة وإصلاحها وبدء العملية الحسابية من جديد بعد تصحيح المشكلة.

    ملاحظة:‏

    يجب تمكين التحرير على الطبقة لاستخدام Arcade للعمليات الحسابية، ولكن يتعذر تمكين المزامنة للطبقة. راجع إدارة طبقات المعالم المستضافة للحصول على معلومات حول تغيير إعدادات التحرير والمزامنة.

  • SQL—استخدم SQL للحصول على أسرع أداء مع العمليات الحسابية التي يمكن تنفيذها باستخدام تعبيرات SQL (SQL-92) القياسية على سمات غير مكانية. يمكنك تشغيل SQL على طبقات المعالم المستضافة والتي تم تمكين المزامنة عليها والطبقات التي تم تكوينها لتتبع منشئي المحتوى والمحررين، في حين لا يمكنك تشغيل تعبيرات Arcade في مثل هذه الطبقات.

يوضح القسم التالي كيفية حساب قيم الحقل من صفحة التفاصيل لطبقة المعالم المستضافة. توفر المقاطع اللاحقة أمثلة للحسابات الشائعة.

احتساب القيم الخاصة بالحقل

اتبع الخطوات التالية لحساب قيم حقل سلسلة أو رقمي أو تاريخ في الحقل.

ملاحظة:‏
يتعذر التراجع عن عمليات الحقل الحسابية. ولهذا السبب، تعد إضافة حقل، وحساب القيم فيه وتأكيد الحسابات المطلوبة ممارسات جيدة. إذا كان الأمر كذلك، يمكنك حساب الحقل الأصلي ليساوي الحقل المضاف. بمجرد تأكيد صحة القيم في الحقل الأصلي، يمكنك حذف الحقل الذي أضفتَه.

  1. من صفحة عنصر الطبقة، انقر على علامة تبويب البيانات لعرض الجدول.
    تلميح:

    يمكنك أيضاً القيام بتلك الخطوات من الجدول الموجود في Map Viewer.

  2. انقر على العمود الذي يحتوي على القيم التي تريد حسابها.
  3. قمْ بتنفيذ أحد الخيارات التالية لفتح مربع حواري حساب الحقل:
    • انقر على حساب.
    • انقر فوق إظهار عرض تفصيلي > حساب.
  4. اختر اللغة التي ستستخدمها في الحساب، إما Arcade أو SQL.

    إذا تم تمكين المزامنة على طبقات المعالم المستضافة أو تم تكوينها لتتبع من يقوم بإنشاء المعالم ويقوم بتحديثها، فلن تشاهد هذه الصفحة. وبدلاً من ذلك، تظهر نافذة SQL.

  5. إنشاء تعبيرحسابي.
    • بالنسبة إلى لغة SQL، استخدمْ المشغلات الأساسية، وقائمة الحقل، و الوظائف. انقر على زر التحقق لضمان عدم وجود أخطاء في التعبير. إذا كان التعبير غير صالح، انقر فوق زر الإزالة لإنشاء تعبير جديد. عند اكتمال التعبير والتأكد من صحته، انقر على حساب.
    • بالنسبة لـ Arcade, استخدم المتغيرات العامة والوظائف, والثوابت. انقر فوق نعم لتشغيل التعبير. في حالة حدوث خطأ عند تشغيل التعبير، يمكنك النقر على مراجعة الخطأ لفتح نافذة التعبير حتى تتمكن من إصلاح الخطأ. بخلاف ذلك، يمكنك النقر على إلغاء. إذا قمت بتصحيح التعبير وتشغيله مرة أخرى، يبدأ العملية الحسابية من جديد.

يعتمد الوقت المستغرق لاكتمال الحساب على تعقيد التعبير وعدد المعالم في طبقتك.

أمثلة على الحسابات

توفر المقاطع التالية مثالاً لبناء جملة أو طرق تنفيذ العمليات الحسابية الشائعة في ArcGIS Enterprise.

تنفيذ عملية حسابية على قيم رقمية في حقلين حاليين لملء حقل ثالث

إحدى الحسابات الأكثر شيوعًا التي تقوم بها هي اشتقاق قيمة رقمية جديدة استنادًا إلى القيم الموجودة في طبقة المعالم. على سبيل المثال، يمكنك طرح إجماليات مبيعات سنة واحدة لجميع متاجرك من إجماليات المبيعات من سنة أخرى للعثور على التغيير في الأرباح من سنة إلى أخرى، أو قد تقسم إجمالي عدد السكان الذين تقل أعمارهم عن 18 عامًا على إجمالي عدد السكان لتحديد عدد السكان الذين تقل أعمارهم عن 18 عامًا.

أمثلة Arcade

حساب الفرق بين قيم حقلين رقميين، Sales2016 وSales2017، لملء حقل رقمي.

$feature.Sales2016 - $feature.Sales2017

أمثلة SQL

استخدم حساب على حقل رقمي (SalesDifference) للعثور على الفرق بين القيم الموجودة في الحقول الرقمية، Sales2016 وSales2017.

Sales2016 - Sales2017

املأ حقل رقمي برقم عشري يكون ناتجًا عن حساب أي عدد من السكان يقل عمرهم عن 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")

استخدام عامل تصفية

إذا كنت لا تريد استخدام تعبير Arcade، يمكنك تطبيق عامل تصفية للطبقة في Map Viewer، وحساب قيم الميزات التي تمت تصفيتها، وإزالة عامل التصفية هذا، وتطبيق عامل تصفية آخر بناءً على قيمة مختلفة، وحساب قيم لهذه الحقول. هذا مبين في الخطوات التالية:

على سبيل المثال، إذا كان لديك حقل رقمي يقوم بتسجيل أنواع التخزين باستخدام الرموز (3 و 2 و 1)، وتريد حقل سلسلة يوضح ما تمثله كل من هذه الرموز (السلسلة والامتياز والمستقل)، فيمكنك إضافة حقل سلسلة إلى الطبقة، وإضافة الطبقة إلى Map Viewer، وعامل تصفية لقيمة كل رمز، وحساب قيمة حقل السلسلة.

  1. إضافة حقل سلسلة لطبقة المعلم المستضافة. قم بتعيين الطول لكي يناسب أطول سلسلة ستقوم بتخزينها.

    في مثال نوع المخزن، يكون اسم الحقل الجديد هو TypeFull.

  2. على علامة التبويب نظرة عامة في صفحة تفاصيل الطبقة، انقر فوق فتح الخريطة في عارض الخرائط.
  3. عرّف عامل التصفية على الطبقة حتى تتواجد فقط معالم من النوع نفسه في الخريطة.

    بالنسبة لمثال المتجر، قم بتطبيق عامل تصفية يعرض فقط تلك الميزات التي تكون فيها StoreCode قيمة حقل تساوي 3.

  4. افتح جدول بيانات هذه الطبقة.
  5. انقر فوق اسم الحقل الذي قمت بإضافته في الخطوة الأولى وانقر فوق حساب.

    بالنسبة لهذا المثال، انقر فوق اسم TypeFull وانقر فوق حساب.

  6. اكتب السلسلة التي تريد إدراجها في هذا الحقل لهذه الميزات. قم بتضمين السلسلة داخل علامات اقتباس مفردة.

    اكتب 'chain' لملء حقل TypeFull لكل المعالم التي لديها قيمة StoreCode تساوي 3.

  7. انقر على حساب.
  8. أزل عامل التصفية الذي حددته في الخطوة 3. افتح نافذة عامل التصفية للطبقة مرة أخرى وانقر فوق إزالة عامل التصفية.
  9. كرر الخطوات من 3 إلى 8 للقيم المتبقية التي تحتاج إلى حسابها.

    بالنسبة لمثال التخزين، حدد عامل التصفية لـ StoreCode كـ 2 واحسب TypeFull لتخزين 'franchise'. أزل عامل التصفية، وحدد عامل التصفية الجديد لـ StoreCode كـ 1واحسب TypeFull لتخزين 'independent'.

  10. عند الانتهاء من حساب القيم للحقل الجديد، قم بإغلاق Map Viewer بدون حفظ الخريطة.

استبدال قيمة واحدة بأخرى

إذا كنت بحاجة إلى استبدال قيمة موجودة بأخرى - على سبيل المثال، إذا تغيرت الطريقة التي تمثل بها قيمة معينة أو تحتاج إلى تصحيح قيم مكتوبة بشكل غير صحيح - يمكنك العثور على جميع القيم الموجودة لحقل ما واستبدالها بقيمة جديدة. نظرًا لأن واجهة حساب SQL لا تدعم هذا، استخدم Arcade لهذه الأنواع من العمليات الحسابية.

تنبيه:

يتم حفظ عمليات الحسابات على طبقة المعلم فورًا. إذا قمت بالكتابة فوق قيمة موجودة بالفعل عن طريق الخطأ، فستحتاج إلى الحساب مرة أخرى لتغيير القيمة مرة أخرى.

مثال Arcade

يستخدم هذا المثال وظيفة الاستبدال لتغيير الهجاء البريطاني لكلمة (اللون) إلى الهجاء الأمريكي.

Replace($feature.color, 'colour', 'color')

استخدام عامل تصفية

على غرار الطريقة التي ستستخدمها لتعبئة حقل استنادًا إلى القيم الموجودة في حقل آخر، يمكنك تطبيق عامل تصفية على الطبقة في Map Viewer والتي تقوم بإرجاع تلك الميزات التي تحتوي على قيمة الحقل التي تريد استبدالها فقط. بعد ذلك، قم بتعيين الحقول التي تمت تصفيتها والمساوية للقيمة الجديدة لتحديث قيمة الحقول.

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

  1. أضف طبقة المعالم المستضافة التي تريد تحديثها إلىMap Viewer.

    يجب أن تكون مالك الطبقة أو مسؤول موقع البوابة.

  2. عرّف عامل التصفية على الطبقة حتى تظهر فقط المعالم التي تحتوي على القيمة التي تريد استبدالها على الخريطة.

    على سبيل المثال، إذا كنت تعرف رقم المعالم التي تحتوي على قيم Crt للحقل StreetType فقم بتطبيق عامل تصفية يُرجع فقط تلك المعالم فقط والتي تكون قيمة حقل StreetType فيها هي Crt.

  3. افتح جدول بيانات هذه الطبقة.
  4. انقر فوق اسم الحقل وانقر فوق حساب.

    بالنسبة لهذا المثال، انقر على حقل StreetType ثم انقر على حساب.

  5. اكتب السلسلة التي تريد إدراجها في هذا الحقل لهذه الميزات. قم بتضمين السلسلة داخل علامات اقتباس مفردة.

    اكتب 'Ct' لحساب حقول StreetType التي تمت تصفيتها بالاختصار المصحح لـ Court.

  6. انقر فوق حساب لتطبيق التغييرات على الحقول التي تمت تصفيتها.
  7. قم بإغلاق Map Viewer بدون حفظ الخريطة.

حدد كثافة السمة الرقمية لكل منطقة من مناطق المعالم

لحساب كثافة سمة واحدة داخل منطقة ما، استخدم تعبير 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

استخدم استعلام INTERVAL لإضافة زمن أو طرح زمن من حقل تاريخ، كما هو موضح في الحسابات التالية. يضيف المثال الأول ثلاثة أيام إلى تاريخ لكي يؤدي إلى تاريخ جديد. يطرح المثال الثاني ثلاثة أيام من حقل الطابع الزمني.

<DateField> + INTERVAL '3'DAY = updated date
<DateField> - INTERVAL '3 00:00:60' DAY TO SECOND = updated date

يمكنك استخدام INTERVAL بالتاريخ وقيم التاريخ التالية:

  • يوم
  • ساعة
  • دقيقة
  • ثانية
  • يوم إلى ساعة
  • يوم إلى دقيقة
  • يوم إلى ثانية
  • ساعة إلى دقيقة
  • ساعة إلى ثانية
  • دقيقة إلى ثانية

حساب الاختلاف بين تاريخين

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

مثال 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، ستحصل السجلات التي تتطابق مع معايير عامل التصفية فقط على القيم المحسوبة.
  • عند كتابة تعبيرات SQL، يعمل حساب الحقل مع أسماء الحقل فقط، وليس مع الأسماء المستعارة للحقل. تظهر قائمة الحقول جميع أسماء الحقول المتاحة للعمليات الحسابية. يُمكن تصفية القائمة تبعًا لأنواع الحقل السلسلةو رقميو تاريخ.
    • عند التحويم حول اسم الحقل في قائمة الحقول سيتم عرض الاسم المستعار للحقل وكذلك نوع الحقل.
    • عند النقر على اسم الحقل في قائمة الحقول ستتم إضافة الحقل إلى التعبير.
  • يتعذر عليك حساب قيم الحقل في نسخ من طبقات المعالم المستضافة أو طبقات المعالم المستضافة التي تحتوي على طبقات تجانب ذات صلة أو طبقات المعالم المستضافة للموضع الزماني المكاني أو عروض منشأة من طبقات المعالم المستضافة للموضع الزماني المكاني.
  • يتم دعم استعلامات SQL القياسية فقط عند حساب قيم الحقل.
  • يتعذر عليك استخدام دالة MOD الرقمية في حقول مزدوجة. إرسال الحقل إلى عدد صحيح كما هو معروض في المثال.
  • لا يمكنك كتابة تعبيرات Arcade لطبقات المعالم المستضافة التي تم تمكينها أو التي تم تكوينها لتعقب الأشخاص الذين قاموا بإنشاء المعالم وأجروا آخر تحديث لها.

مرجع SQL القياسي (SQL-92)

عند كتابة أحد تعبيرات SQL لحساب قيم الحقل، استخدم SQL قياسيًا. يوفر هذا القسم قائمة بعوامل التشغيل ووظائف SQL التي يمكنك استخدامها لحسابات SQL في ArcGIS Enterprise.

بعد إنشاء تعبير 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، أو تاريخ في تنسيق MM/DD/YYYY hh:mm:ss، المُحاطة بعلامات اقتباس فردية.
  • الدالة التي ترجع قيمة النوع المناسب (سلسلة أو رقم أو تاريخ). مثال، FLOOR(POWER(SAMP_ERR, 0.5)) يُرجع أكبر عدد صحيح أقل من أو يساوي الجذر المربع لـ SAMP_ERR.

ولأغراض التوضيح، تستخدم الأمثلة في عمود وصف الجداول التالية الوسيطات الحرفية بكثرة. يمكن استبدال اسم الحقل أو دالة أخرى لتلك الوسيطات.

دالات التاريخ

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

قبل التعامل مع حقول التاريخ، اقرأ هذه الاعتبارات الهامة.

يمكنك استخدام أي مجموعة من حقول التاريخ والأرقام والبيانات الحرفية عند حساب حقول التاريخ. عند استخدام البيانات الحرفية للتاريخ، يجب استخدام تنسيقات بيانات مدعومة من SQL.

تتوفر دالات البيانات التالية:

دالةالوصف

CURRENT_DATE

يُرجع التاريخ الحالي في زمن UTC.

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

يعرض المثال التالي جميع القيم في الحقل inspection_date التي لها تاريخ بعد تاريخ اليوم:

inspection_date > CURRENT_DATE

CURRENT_TIMESTAMP

يُرجع تاريخ وزمن UTC الحالي (ساعات ودقائق وثواني).

يعتمد ما تراه في العميل على العميل الذي تستخدمه. في موقع البوابة الإلكترونية، يتم عرض الوقت بالوقت المحلي للمتصفح الخاص بك.

في هذا المثال، يتم إرجاع كافة قيم الطابع الزمني قبل تاريخ اليوم والوقت الحالي (بالتوقيت العالمي المنسق) للحقل appointments:

appointments < CURRENT_TIMESTAMP

EXTRACT(<unit> FROM '<date>')

إرجاع جزء واحد (<unit>) من <date> المحدد. تشمل قيم <unit> المحتملة على سبيل المثال لا الحصر العام والشهر واليوم والساعة والدقيقة.

تتضمن الأمثلة ما يلي:

  • EXTRACT(MONTH FROM '12-21-2016')- يُرجع 12.
  • EXTRACT(DAY FROM '12-21-2016 12:00')- يُرجع 21.
  • EXTRACT(HOUR FROM '12-21-2016 15:00:44')- يُرجع 15.

دالات الرقمية

دالةالوصف

ABS(<number>)

إرجاع القيمة المطلقة (موجبة) للعدد الذي تحدده.

CEILING(<number>)

إرجاع أصغر عدد صحيح أكبر من أو يساوي العدد المحدد.

مثال

  • CEILING(12.93)- النتيجة هي 13.

COS(<number>)

يُرجع جيب التمام المثلثي لـ <number>، المُفترض أن يكون زاوية في التقدير الدائري.

CAST(<number>AS FLOAT | INT)

يُحول الرقم إلى نوع مختلف. FLOAT يُحوِّل رقم محدد إلى رقم مزدوج، كما يُحول INT إلى عدد صحيح.

FLOOR(<number>)

يُرجع أكبر عدد صحيح أقل من أو يساوي الرقم المحدد.

مثال

  • FLOOR(12.93)- النتيجة هي 12.

LN(<number>,<decimal_place>)

اللوغاريتم الطبيعي للرقم المحدد.

LOG(<number>,<decimal_place>)

اللوغاريتم بأساس 10 للرقم المحدد.

MOD(<number>, <n>)

إرجاع المتبقي بعد قسمة (<number>) المقسوم على المقسوم عليه <n>. يجب أن يكون كلا من <n> و<number> بنوع عدد صحيح.

تتضمن الأمثلة ما يلي:

  • MOD(10, 4)- النتيجة هي 2.
  • MOD(CAST(DBLFIELD AS INT), 4)DBLFIELD هو حقل نوع مزدوج؛ لذا يجب توفّر دالة CAST لتحويل القيم من مزدوج إلى عدد صحيح.

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>).

ROUND(<number> , <length>)

يُرجع الرقم الذي تحدده إلى الطول المُحدد.

إذا استخدمتَ رقمًا موجبًا لـ <length>، فسيتم تقريب الرقم إلى الموضع العشري المُحدد يواسطة <length>. عندما يكون <length> رقمًا سالبًا، يتم تقريب <number> المحددة في الجانب الأيسر من النقطة العشرية.

أمثلة

  • ROUND(10.9934,2)- يُرجع 10.99.
  • ROUND(10.9964,2)- يُرجع 11.00.
  • ROUND(111.0,-2)- يُرجع 100.00.

SIN(<number>)

يُرجع جيب الزاوية المثلثي لـ <number> المحدد، والذي يُفتَرَض أن يكون زاوية في التقدير الدائري.

TAN(<number>)

يُرجع مماس <number> المحدد، والذي يُفتَرَض أن يكون زاوية في التقدير الدائري.

TRUNC(<number>,<decimal_place>)

اقتطاع <number> عند <decimal_place> المحدد.

يقتطع <decimal_place> الموضع العشري المُحدد. عندما يكون <decimal_place> رقمًا سالبًا، يتم اقتطاع <number> في الجانب الأيسر من النقطة العشرية.

أمثلة

  • TRUNC(111.996,2)- إرجاع 111.99.
  • TRUNC(111.996,-2)- يُرجع 100.00.

دالات السلسلة

دالةالوصف

CHAR_LENGTH(<string>)

إرجاع عدد الأحرف في السلسلة المحددة. تكون النتيجة عدد صحيح.

مثال

  • CHAR_LENGTH('Redlands')- النتيجة هي 8.

CONCAT(<string1>, <string2>)

تسلسل قيمتي سلسلة.

يُمكن توفير سلسلتين فقط. لتسلسل أكثر من سلسلتين، قم بتضمين دالتي CONCATالمتتاليتين، كما هو مُوضح أدناه.

أمثلة

  • CONCAT('A', 'B')- النتيجة هي 'AB'.
  • CONCAT('A', CONCAT(':', 'B'))- النتيجة هي 'A:B'.

يتم تحويل القيم الخالية إلى سلسلة فارغة.

POSITION(<substring> in <string>)

إرجاع موضع الحدث الأول للسلسة الفرعية المحددة في السلسلة التي تحددها. إن لم يتم العثور على السلسلة الفرعية، فإن النتيجة ستكون 0.

أمثلة

  • POSITION('boat'in 'Sailboat')- النتيجة هي 5.
  • POSITION('motor'in 'Sailboat')- النتيجة هي 0.

SUBSTRING(<string>, <start>, <length>)

إرجاع جزء من قيمة سلسلة، <start> هو فهرس عدد صحيح يُحدد مكان بدء الأحرف التي تم إرجاعها، كما يعد <length> عدد الأحرف المطلوب إرجاعها.

أمثلة

  • SUBSTRING('Sailboat', 5, 4)- النتيجة هي 'boat'.
  • SUBSTRING('Sailboat', 1, 4)- النتيجة هي 'Sail'.
  • SUBSTRING('Sailboat', 5, 100)- النتيجة هي 'boat'.

TRIM(BOTH | LEADING | TRAILING ' ' FROM <string>)

إرجاع سلسلة حيث تتم إزالة جميع المسافات البادئة أو اللاحقة من السلسلة التي تحددها.

مثال

  • TRIM(BOTH ' ' FROM ' San Bernardino ')- النتيجة هي 'San Bernardino'.

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

UPPER(<string>)

إرجاع سلسلة حيث يتم تحويل جميع الأحرف إلى أحرف كبيرة.

مثال

  • UPPER('Sailboat')- النتيجة هي 'SAILBOAT'.

LOWER(<string>)

إرجاع سلسلة حيث يتم تحويل جميع الأحرف إلى أحرف صغيرة.

مثال

  • LOWER('Sailboat')- النتيجة هي 'sailboat'.