Referens för Azure Digital Twins-frågespråk: SELECT-sats
Det här dokumentet innehåller referensinformation om SELECT-satsen för Azure Digital Twins-frågespråket.
SELECT-satsen är den första delen av en fråga. Den anger listan över kolumner som frågan ska returnera.
Den här satsen krävs för alla frågor.
VÄLJ*
*
Använd tecknet i en select-instruktion för att projicera digital tvilling-dokumentet som det är, utan att tilldela det till en egenskap i resultatuppsättningen.
Anteckning
SELECT *
är endast giltig syntax när frågan inte använder en JOIN
. Mer information om frågor med hjälp av finns JOIN
i Azure Digital Twins-frågespråksreferens: JOIN-sats.
Syntax
SELECT *
--FROM ...
Returer
Den uppsättning egenskaper som returneras från frågan.
Exempel
Följande fråga returnerar alla digitala tvillingar i instansen.
SELECT *
FROM DIGITALTWINS
SELECT-kolumner med projektioner
Du kan använda projektioner i SELECT-satsen för att välja vilka kolumner en fråga ska returnera. Du kan ange namngivna samlingar av tvillingar och relationer, eller egenskaper för tvillingar och relationer.
Projektion stöds nu för både primitiva egenskaper och komplexa egenskaper.
Syntax
Så här projicerar du en samling:
SELECT <twin-or-relationship-collection>
Så här projicerar du en egenskap:
SELECT <twin-or-relationship-collection>.<property-name>
Returer
En samling tvillingar, egenskaper eller relationer som anges i projektionen.
Om en egenskap som ingår i projektionen inte finns för en viss datarad finns inte egenskapen på samma sätt i resultatuppsättningen. Ett exempel på det här beteendet finns i Exempel på projektegenskap: Egenskapen finns inte för en datarad.
Exempel
Exempel på ett scenario
I följande exempel kan du överväga en tvillinggraf som innehåller följande dataelement:
- En fabrikstvilling med namnet FactoryA
- Innehåller en egenskap som heter
name
med värdetFactoryA
- Innehåller en egenskap som heter
- En konsumenttvilling med namnet Contoso
- Innehåller en egenskap som heter
name
med värdetContoso
- Innehåller en egenskap som heter
- En consumerRelationship-relation från FactoryA till Contoso, kallad
FactoryA-consumerRelationship-Contoso
- Innehåller en egenskap som heter
managedBy
med värdetJeff
- Innehåller en egenskap som heter
Här är ett diagram som illustrerar det här scenariot:
Exempel på projektsamling
Nedan visas en exempelfråga som projicerar en samling från den här grafen. Följande fråga returnerar alla digitala tvillingar i instansen genom att namnge hela tvillingsamlingen T
och projicera T
som den samling som ska returneras.
SELECT T
FROM DIGITALTWINS T
Här är JSON-nyttolasten som returneras från den här frågan:
{
"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"
}
Projekt med JOIN-exempel
Projektion används ofta för att returnera en samling som anges i en JOIN
. Följande fråga använder projektion för att returnera data för konsument, fabrik och relation. Mer information om syntaxen JOIN
som används i exemplet finns i Frågespråksreferens för Azure Digital Twins: JOIN-sats.
SELECT Consumer, Factory, Relationship
FROM DIGITALTWINS Factory
JOIN Consumer RELATED Factory.consumerRelationship Relationship
WHERE Factory.$dtId = 'FactoryA'
Här är JSON-nyttolasten som returneras från den här frågan:
{
"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"
}
Exempel på projektegenskap
Här är ett exempel som projicerar en egenskap. Följande fråga använder projektion för att returnera name
egenskapen för konsumenttvillingen managedBy
och egenskapen för relationen.
SELECT Consumer.name, Relationship.managedBy
FROM DIGITALTWINS Factory
JOIN Consumer RELATED Factory.consumerRelationship Relationship
WHERE Factory.$dtId = 'FactoryA'
Här är JSON-nyttolasten som returneras från den här frågan:
{
"value": [
{
"result": [
{
"managedBy": "Jeff",
"name": "Contoso"
}
]
}
],
"continuationToken": "null"
}
Exempel på projektegenskap: Egenskapen finns inte för en datarad
Om en egenskap som ingår i projektionen inte finns för en viss datarad finns inte egenskapen på samma sätt i resultatuppsättningen.
I det här exemplet bör du överväga en uppsättning tvillingar som representerar personer. Vissa av tvillingarna har åldrar associerade med dem, men andra har det inte.
Här är en fråga som projicerar name
egenskaperna och age
:
SELECT name, age
FROM DIGITALTWINS
Resultatet kan se ut ungefär så här, och age
egenskapen saknas i vissa tvillingar i resultatet där tvillingarna inte har den här egenskapen.
{
"value": [
{
"result": [
{
"name": "John",
"age": 27
},
{
"name": "Keanu"
}
]
}
],
"continuationToken": "null"
}
VÄLJ ANTAL
Använd den här metoden för att räkna antalet objekt i resultatuppsättningen och returnera det talet.
Syntax
SELECT COUNT()
Argument
Inga.
Returer
Ett int
värde.
Exempel
Följande fråga returnerar antalet digitala tvillingar i instansen.
SELECT COUNT()
FROM DIGITALTWINS
Följande fråga returnerar antalet alla relationer i instansen.
SELECT COUNT()
FROM RELATIONSHIPS
VÄLJ ÖVERKANT
Använd den här metoden om du bara vill returnera några av de översta objekten som uppfyller frågekraven.
Syntax
SELECT TOP(<number-of-return-items>)
Argument
Ett int
värde som anger antalet översta objekt att välja.
Returer
En samling tvillingar.
Exempel
Följande fråga returnerar endast de första fem digitala tvillingarna i instansen.
SELECT TOP(5)
FROM DIGITALTWINS