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