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