مرجع لغة استعلام 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"
}

مثال على Project with 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