توحيد وظائف SQL في ArcGIS Online.

يحتاج ArcGIS Online من المطورين أن يتسخدموا استعلامات SQL القياسية عند الاستعلام عن طبقات المعالم المستضافة. يكون ذلك أسهل على المطورين والتطبيقات للاستعلام عن طبقات المعالم المستضافة والمساعدة على حماية SQL من التلاعب. تدعم جميع تطبيقات ArcGIS استعلامات SQL القياسية تلقائيًا.

قيود الاستعلامات الموحدة

  • يتم تطبيق الاستعلامات القياسية على المنظمة بأكملها، يتعذر تعطيلها لبعض التطبيقات.
  • الاستعلامات الموحدة غير مدعومة بين مسافات العمل المختلفة.
  • لا يتم دعم الاستعلامات الفرعية كعبارة أين، على سبيل المثال، POP_2010 = (SELECT min(POP_2010) FROM counties.
  • الاستعلامات من خدمات قاعدة البيانات، مثال، Microsoft Azure SQL Database ،ليست مدعومة أيضًا.

أي من وظائف SQL تكون مدعومة في ArcGIS Online?

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

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

وظيفةالوصف

CURRENT_DATE()

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

يعتمد ما تراه في العميل على العميل الذي تستخدمه. في ArcGIS Online، تظهر التواريخ في المنطقة الزمنية لمؤسستك أو ملفك الشخصي.

CURRENT_TIME()

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

يعتمد ما تراه في العميل على العميل الذي تستخدمه. في ArcGIS Online، يتم عرض الوقت بالتوقيت المحلي لمؤسستك أو ملفك الشخصي.

CURRENT_TIMESTAMP()

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

يعتمد ما تراه في العميل على العميل الذي تستخدمه. في ArcGIS Online، يتم عرض الوقت بالتوقيت المحلي لمؤسستك أو ملفك الشخصي.

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) - تُرجع 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.

LOG(<number>)

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

LOG10(<number>)

اللوغاريتم بأساس 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> المحدد، والذي يُفتَرَض أن يكون زاوية في التقديرات الدائرية.

TRUNCATE(<number>,<decimal_place>)

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

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

أمثلة

  • TRUNCATE(111.996,2) - تُرجع 111.99.
  • TRUNCATE(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>, <string>)

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

أمثلة

  • POSITION('boat', 'Sailboat') - النتيجة هي 5.
  • POSITION('motor', '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'.