مشاركة عبر


مرجع لغة استعلام Azure Digital Twins: عبارة SELECT

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

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

هذه العبارة مطلوبة لجميع الاستعلامات.

SELECT *

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

إشعار

SELECT * بناء الجملة صالح فقط عندما لا يستخدم JOINالاستعلام . لمزيد من المعلومات حول الاستعلامات باستخدام JOIN، راجع مرجع لغة استعلام Azure Digital Twins: عبارة JOIN.

بناء الجملة

SELECT *
--FROM ...

المرتجعات

مجموعة الخصائص التي يتم إرجاعها من الاستعلام.

مثال

يقوم الاستعلام التالي بإرجاع كافة التوائم الرقمية في المثيل.

SELECT *
FROM DIGITALTWINS

تحديد أعمدة ذات إسقاطات

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

الإسقاط مدعوم الآن لكل من الخصائص الأولية والخصائص المعقدة.

بناء الجملة

لعرض مجموعة:

SELECT <twin-or-relationship-collection>

لعرض خاصية:

SELECT <twin-or-relationship-collection>.<property-name>

المرتجعات

مجموعة من التوائم أو الخصائص أو العلاقات المحددة في الإسقاط.

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

الأمثلة

سيناريو مثال

للحصول على الأمثلة التالية، ضع في اعتبارك رسما بيانيا مزدوجا يحتوي على عناصر البيانات التالية:

  • توأم مصنع يسمى FactoryA
    • يحتوي على خاصية تسمى name بقيمة FactoryA
  • توأم مستهلك يسمى Contoso
    • يحتوي على خاصية تسمى name بقيمة Contoso
  • علاقة علاقة علاقة المستهلك من FactoryA إلى Contoso، تسمى FactoryA-consumerRelationship-Contoso
    • يحتوي على خاصية تسمى managedBy بقيمة Jeff

فيما يلي رسم تخطيطي يوضح هذا السيناريو:

رسم تخطيطي يوضح نموذج الرسم البياني الموضح أعلاه.

مثال على مجموعة المشاريع

فيما يلي مثال استعلام يعرض مجموعة من هذا الرسم البياني. يقوم الاستعلام التالي بإرجاع كافة التوائم الرقمية في المثيل، عن طريق تسمية مجموعة T التوأم بالكامل والعرض T كمجموعة لإرجاعها.

SELECT T
FROM DIGITALTWINS T

إليك حمولة JSON التي تم إرجاعها من هذا الاستعلام:

{
  "value": [
    {
      "result": [
        {
          "T": {
            "$dtId": "FactoryA",
            "$etag": "W/\"d22267a0-fd4f-4f6b-916d-4946a30453c9\"",
            "$metadata": {
              "$model": "dtmi:contosocom:DigitalTwins:Factory;1",
              "name": {
                "lastUpdateTime": "2021-04-19T17:15:54.4977151Z"
              }
            },
            "name": "FactoryA"
          }
        },
        {
          "T": {
            "$dtId": "Contoso",
            "$etag": "W/\"a96dc85e-56ae-4061-866b-058a149e03d8\"",
            "$metadata": {
              "$model": "dtmi:com:contoso:Consumer;1",
              "name": {
                "lastUpdateTime": "2021-04-19T17:16:30.2154166Z"
              }
            },
            "name": "Contoso"
          }
        }
      ]
    }
  ],
  "continuationToken": "null"
}

مثال المشروع مع JOIN

يستخدم الإسقاط بشكل شائع لإرجاع مجموعة محددة JOINفي . يستخدم الاستعلام التالي الإسقاط لإرجاع بيانات المستهلك والمصنع والعلاقة. لمزيد من المعلومات حول بناء الجملة JOIN المستخدم في المثال، راجع مرجع لغة استعلام Azure Digital Twins: عبارة JOIN.

SELECT Consumer, Factory, Relationship
FROM DIGITALTWINS Factory
JOIN Consumer RELATED Factory.consumerRelationship Relationship
WHERE Factory.$dtId = 'FactoryA'

إليك حمولة JSON التي تم إرجاعها من هذا الاستعلام:

{
  "value": [
    {
      "result": [
        {
          "Consumer": {
            "$dtId": "Contoso",
            "$etag": "W/\"a96dc85e-56ae-4061-866b-058a149e03d8\"",
            "$metadata": {
              "$model": "dtmi:com:contoso:Consumer;1",
              "name": {
                "lastUpdateTime": "2021-04-19T17:16:30.2154166Z"
              }
            },
            "name": "Contoso"
          },
          "Factory": {
            "$dtId": "FactoryA",
            "$etag": "W/\"d22267a0-fd4f-4f6b-916d-4946a30453c9\"",
            "$metadata": {
              "$model": "dtmi:contosocom:DigitalTwins:Factory;1",
              "name": {
                "lastUpdateTime": "2021-04-19T17:15:54.4977151Z"
              }
            },
            "name": "FactoryA"
          },
          "Relationship": {
            "$etag": "W/\"f01e07c1-19e4-4bbe-a12d-f5761e86d3e8\"",
            "$relationshipId": "FactoryA-consumerRelationship-Contoso",
            "$relationshipName": "consumerRelationship",
            "$sourceId": "FactoryA",
            "$targetId": "Contoso",
            "managedBy": "Jeff"
          }
        }
      ]
    }
  ],
  "continuationToken": "null"
}

مثال على خاصية المشروع

فيما يلي مثال يعرض خاصية. يستخدم الاستعلام التالي الإسقاط لإرجاع name خاصية التوأم المستهلك وخاصية managedBy العلاقة.

SELECT Consumer.name, Relationship.managedBy
FROM DIGITALTWINS Factory
JOIN Consumer RELATED Factory.consumerRelationship Relationship
WHERE Factory.$dtId = 'FactoryA'

إليك حمولة JSON التي تم إرجاعها من هذا الاستعلام:

{
  "value": [
    {
      "result": [
        {
          "managedBy": "Jeff",
          "name": "Contoso"
        }
      ]
    }
  ],
  "continuationToken": "null"
}

مثال على خاصية المشروع: الخاصية غير موجودة لصف بيانات

إذا لم تكن الخاصية المضمنة في الإسقاط موجودة لصف بيانات معين، فلن تكون الخاصية كذلك موجودة في مجموعة النتائج.

ضع في اعتبارك في هذا المثال مجموعة من التوائم التي تمثل الأشخاص. بعض التوائم لديهم أعمار مرتبطة بهم، ولكن البعض الآخر لا.

فيما يلي استعلام يعرض name خصائص و age :

SELECT name, age 
FROM DIGITALTWINS

قد تبدو النتيجة شيئا مثل هذا، مع فقدان الخاصية age من بعض التوائم في النتيجة حيث لا تحتوي التوائم على هذه الخاصية.

{
  "value": [
    {
      "result": [
        {
          "name": "John",
          "age": 27
        },
        {
          "name": "Keanu"
        }
      ]
    }
  ],
  "continuationToken": "null"
}

حدد COUNT

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

بناء الجملة

SELECT COUNT()

الوسيطات

لا يوجد.

المرتجعات

قيمة int .

مثال

يقوم الاستعلام التالي بإرجاع عدد جميع التوائم الرقمية في المثيل.

SELECT COUNT()
FROM DIGITALTWINS

يقوم الاستعلام التالي بإرجاع عدد كافة العلاقات في المثيل.

SELECT COUNT()
FROM RELATIONSHIPS

تحديد أعلى

استخدم هذا الأسلوب لإرجاع بعض العناصر العلوية التي تفي بمتطلبات الاستعلام فقط.

بناء الجملة

SELECT TOP(<number-of-return-items>)

الوسيطات

int قيمة تحدد عدد العناصر العليا التي يجب تحديدها.

المرتجعات

مجموعة من التوائم.

مثال

يقوم الاستعلام التالي بإرجاع أول خمسة توائم رقمية فقط في المثيل.

SELECT TOP(5)
FROM DIGITALTWINS