مرجع لغة استعلام Azure Digital Twins: الوظائف

يحتوي هذا المستند على معلومات مرجعية حول دالات لغة استعلام Azure Digital Twins.

ARRAY_CONTAINS

دالة لتحديد ما إذا كانت خاصية صفيف التوأم (مدعومة في DTDL v3) تحتوي على قيمة محددة أخرى.

بناء الجملة

ARRAY_CONTAINS(<array-to-check>,<contained-value>)

الوسيطات

  • <array-to-check>: خاصية مزدوجة من نوع الصفيف تريد التحقق من القيمة المحددة
  • <contained-value>: سلسلة أو عدد صحيح أو مزدوج أو منطقي يمثل القيمة التي يجب التحقق منها داخل الصفيف

عمليات الإرجاع

قيمة منطقية تشير إلى ما إذا كان الصفيف يحتوي على القيمة المحددة.

مثال

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

SELECT T.name 
FROM DIGITALTWINS T 
WHERE ARRAY_CONTAINS (T.floor_number, 2)

القيود

تحتوي الدالة ARRAY_CONTAINS() على القيود التالية:

  • فهرسة الصفيف غير مدعومة.
    • على سبيل المثال، array-name[index] = 'foo_bar'
  • الاستعلامات الفرعية ضمن خاصية ARRAY_CONTAINS() غير مدعومة.
    • على سبيل المثال، SELECT T.name FROM DIGITALTWINS T WHERE ARRAY_CONTAINS (SELECT S.floor_number FROM DIGITALTWINS S, 4)
  • ARRAY_CONTAINS() غير مدعوم في خصائص العلاقات.
    • على سبيل المثال، لنقل Floor.Contains هي علاقة من الكلمة إلى الغرفة ولها خاصية lift بقيمة ["operating", "under maintenance", "under construction"]. استعلامات مثل هذه غير مدعومة: SELECT Room FROM DIGITALTWINS Floor JOIN Room RELATED Floor.Contains WHERE Floor.$dtId = 'Floor-35' AND ARRAY_CONTAINS(Floor.Contains.lift, "operating").
  • لا يبحث ARRAY_CONTAINS() داخل الصفائف المتداخلة.
    • على سبيل المثال، لنفترض أن التوأم لديه tags خاصية بقيمة [1, [2,3], 3, 4]. يرجع البحث عن 2 استخدام الاستعلام SELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, 2) False. البحث عن قيمة في صفيف المستوى الأعلى، مثل 1 استخدام الاستعلام SELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, 1)، يرجع True.
  • ARRAY_CONTAINS() غير مدعوم إذا كان الصفيف يحتوي على كائنات.
    • على سبيل المثال، لنفترض أن التوأم لديه tags خاصية بقيمة [Room1, Room2] مكان Room1 وعناصر Room2 . استعلامات مثل هذه غير مدعومة: SELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, Room2).

CONTAINS

دالة سلسلة لتحديد ما إذا كانت خاصية سلسلة التوأم تحتوي على قيمة سلسلة محددة أخرى.

بناء الجملة

CONTAINS(<string-to-check>,<contained-string>)

الوسيطات

  • <string-to-check>: خاصية توأم من نوع سلسلة تريد التحقق من القيمة المحددة
  • <contained-string>: سلسلة تمثل القيمة التي يجب التحقق منها

عمليات الإرجاع

قيمة منطقية تشير إلى ما إذا كان تعبير السلسلة الأول يحتوي على تسلسل الأحرف المعرفة في تعبير السلسلة الثاني.

مثال

يرجع الاستعلام التالي جميع التوائم الرقمية التي تحتوي معرفاتها على -route. السلسلة التي يجب التحقق منها هي $dtId لكل توأم في المجموعة، والسلسلة المضمنة هي -route.

SELECT *
FROM DIGITALTWINS T
WHERE CONTAINS(T.$dtId, '-route')

ENDSWITH

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

بناء الجملة

ENDSWITH(<string-to-check>,<ending-string>)

الوسيطات

  • <string-to-check>: خاصية توأم من نوع سلسلة تريد التحقق من نهاية
  • <ending-string>: سلسلة تمثل النهاية للتحقق منها

عمليات الإرجاع

قيمة منطقية تشير إلى ما إذا كان تعبير السلسلة الأول ينتهي بالتعبير الثاني.

مثال

يرجع الاستعلام التالي جميع التوائم الرقمية التي تنتهي معرفاتها ب -small. السلسلة التي يجب التحقق منها هي $dtId لكل توأم في المجموعة، وسلسلة النهاية هي -small.

SELECT *
FROM DIGITALTWINS T
WHERE ENDSWITH(T.$dtId, '-small')

IS_BOOL

دالة التحقق من النوع لتحديد ما إذا كانت الخاصية لها قيمة منطقية.

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

بناء الجملة

IS_BOOL(<property>)

الوسيطات

<property>، خاصية للتحقق مما إذا كانت منطقية.

عمليات الإرجاع

قيمة منطقية تشير إلى ما إذا كان نوع الخاصية المحددة قيمة منطقية.

مثال

يحدد الاستعلام التالي التوائم الرقمية التي لها خاصية منطقية HasTemperature .

SELECT *
FROM DIGITALTWINS T
WHERE IS_BOOL( HasTemperature )

يعتمد الاستعلام التالي على المثال أعلاه لتحديد التوائم الرقمية التي تحتوي على خاصية منطقية HasTemperature ، وقيمة هذه الخاصية ليست false.

SELECT *
FROM DIGITALTWINS T
WHERE IS_BOOL( HasTemperature ) AND HasTemperature != false

IS_DEFINED

دالة التحقق من النوع لتحديد ما إذا كانت الخاصية محددة أم لا.

بناء الجملة

IS_DEFINED(<property>)

الوسيطات

<property>، خاصية لتحديد ما إذا كانت محددة أم لا.

عمليات الإرجاع

قيمة منطقية تشير إلى ما إذا تم تعيين قيمة للخاصية.

مثال

يقوم الاستعلام التالي بإرجاع كافة التوائم الرقمية التي لها خاصية محددة Location .

SELECT *
FROM DIGITALTWINS
WHERE IS_DEFINED(Location)

IS_NULL

دالة التحقق من النوع لتحديد ما إذا كانت قيمة الخاصية هي null.

بناء الجملة

IS_NULL(<property>)

الوسيطات

<property>، خاصية للتحقق مما إذا كانت خالية.

عمليات الإرجاع

قيمة منطقية تشير إلى ما إذا كان نوع الخاصية المحددة هو null.

مثال

يقوم الاستعلام التالي بإرجاع التوائم الذين ليس لديهم قيمة خالية لدرجة الحرارة. لمزيد من المعلومات حول NOT عامل التشغيل المستخدم في هذا الاستعلام، راجع مرجع لغة استعلام Azure Digital Twins: عوامل التشغيل.

SELECT *
FROM DIGITALTWINS T
WHERE NOT IS_NULL(T.Temperature)

IS_NUMBER

دالة التحقق من النوع لتحديد ما إذا كانت الخاصية لها قيمة رقمية.

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

بناء الجملة

IS_NUMBER(<property>)

الوسيطات

<property>، خاصية للتحقق مما إذا كانت رقما.

عمليات الإرجاع

قيمة منطقية تشير إلى ما إذا كان نوع الخاصية المحددة رقما.

مثال

يحدد الاستعلام التالي التوائم الرقمية التي لها خاصية رقمية Capacity وقيمتها لا تساوي 0.

SELECT * 
FROM DIGITALTWINS 
WHERE IS_NUMBER( Capacity ) AND Capacity != 0

IS_OBJECT

دالة التحقق من النوع لتحديد ما إذا كانت قيمة الخاصية من نوع كائن JSON.

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

بناء الجملة

IS_OBJECT<property>)

الوسيطات

<property>، خاصية للتحقق مما إذا كانت من نوع كائن.

عمليات الإرجاع

قيمة منطقية تشير إلى ما إذا كان نوع الخاصية المحددة هو كائن JSON.

مثال

يحدد الاستعلام التالي جميع التوائم الرقمية حيث يكون هذا كائنا يسمى MapObject، ولا يحتوي على خاصية TemperatureReadingتابعة .

SELECT * 
FROM DIGITALTWINS 
WHERE IS_OBJECT( MapObject ) AND NOT IS_DEFINED ( MapObject.TemperatureReading )

IS_OF_MODEL

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

بناء الجملة

IS_OF_MODEL(<twin-collection>,'<model-ID>', exact)

الوسيطات

مطلوب:

  • <model-ID>: معرف النموذج الذي يجب التحقق من وجوده.

اختياري:

  • <twin-collection>: حدد مجموعة مزدوجة للبحث عند وجود أكثر من مجموعة (مثل عند JOIN استخدام).
  • exact: يتطلب تطابقا دقيقا. إذا لم يتم تعيين هذه المعلمة، تتضمن مجموعة النتائج توائم مع نماذج ترث من النموذج المحدد.

عمليات الإرجاع

قيمة منطقية تشير إلى ما إذا كان التوأم المحدد يطابق نوع النموذج المحدد.

مثال

يقوم الاستعلام التالي بإرجاع التوائم من مجموعة DT التي هي بالضبط من نوع dtmi:example:room;1النموذج .

SELECT ROOM FROM DIGITALTWINS DT WHERE IS_OF_MODEL(DT, 'dtmi:example:room;1', exact)

IS_PRIMITIVE

دالة التحقق من النوع لتحديد ما إذا كانت قيمة الخاصية من نوع بدائي (سلسلة أو منطقية أو رقمية أو null).

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

بناء الجملة

IS_PRIMITIVE(<property>)

الوسيطات

<property>، خاصية للتحقق مما إذا كانت من نوع بدائي.

عمليات الإرجاع

قيمة منطقية تشير إلى ما إذا كان نوع الخاصية المحددة أحد الأنواع الأولية (سلسلة أو منطقية أو رقمية أو null).

مثال

يقوم الاستعلام التالي بإرجاع area خاصية المصنع بمعرف "ABC"، فقط إذا كانت area الخاصية نوع بدائي. لمزيد من المعلومات حول عرض أعمدة معينة في نتيجة الاستعلام (كما يفعل هذا الاستعلام مع area)، راجع مرجع لغة استعلام Azure Digital Twins: عبارة SELECT.

SELECT Factory.area
FROM DIGITALTWINS Factory
WHERE Factory.$dtId = 'ABC'
AND IS_PRIMITIVE(Factory.area)

IS_STRING

دالة التحقق من النوع لتحديد ما إذا كانت الخاصية لها قيمة سلسلة.

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

بناء الجملة

IS_STRING(<property>)

الوسيطات

<property>، خاصية للتحقق مما إذا كانت سلسلة.

عمليات الإرجاع

قيمة منطقية تشير إلى ما إذا كان نوع التعبير المحدد عبارة عن سلسلة.

مثال

يحدد الاستعلام التالي التوائم الرقمية التي تحتوي على خاصية سلسلة Status وقيمتها لا تساوي Completed.

SELECT * 
FROM DIGITIALTWINS 
WHERE IS_STRING( Status ) AND Status != 'Completed'

STARTSWITH

دالة سلسلة لتحديد ما إذا كانت خاصية سلسلة التوأم تبدأ بسلسلة أخرى معينة.

بناء الجملة

STARTSWITH(<string-to-check>,<beginning-string>)

الوسيطات

  • <string-to-check>: خاصية توأم من نوع سلسلة تريد التحقق من بداية
  • <beginning-string>: سلسلة تمثل البداية للتحقق من

عمليات الإرجاع

قيمة منطقية تشير إلى ما إذا كان تعبير السلسلة الأول يبدأ بالتعبير الثاني.

مثال

يرجع الاستعلام التالي جميع التوائم الرقمية التي تبدأ معرفاتها ب area1-. السلسلة التي يجب التحقق منها هي $dtId لكل توأم في المجموعة، وسلسلة البداية هي area1-.

SELECT *
FROM DIGITALTWINS T
WHERE STARTSWITH(T.$dtId, 'area1-')