Frågespråksreferens för Azure Digital Twins: 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.
UTVALD*
*
Använd tecknet i en select-instruktion för att projicera det digitala tvillingdokumentet som det är, utan att tilldela det till en egenskap i resultatuppsättningen.
Kommentar
SELECT *
är bara 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åkreferens: 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 med 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 visas inte egenskapen på samma sätt i resultatuppsättningen. Ett exempel på det här beteendet finns i Exempel på Project-egenskap: Egenskap som inte finns för en datarad.
Exempel
Exempelscenario
I följande exempel bör du överväga ett tvillingdiagram 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, med namnet
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 det här diagrammet. 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
. I följande fråga används projektion för att returnera data från Konsument, Fabrik och Relation. Mer information om syntaxen JOIN
som används i exemplet finns i Azure Digital Twins-frågespråkreferens: 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 visas inte egenskapen på samma sätt i resultatuppsättningen.
Överväg i det här exemplet en uppsättning tvillingar som representerar personer. Vissa av tvillingarna har åldrar associerade med dem, men andra 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, med egenskapen age
som saknas från 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 relationer i instansen.
SELECT COUNT()
FROM RELATIONSHIPS
VÄLJ ÖVERSTA
Använd den här metoden om du bara vill returnera några av de viktigaste 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