Referenční informace k dotazovacímu jazyku Azure Digital Twins: Klauzule SELECT
Tento dokument obsahuje referenční informace o klauzuli SELECT pro dotazovací jazyk Azure Digital Twins.
Klauzule SELECT je první částí dotazu. Určuje seznam sloupců, které dotaz vrátí.
Tato klauzule se vyžaduje pro všechny dotazy.
VYBRAT*
Pomocí znaku *
v příkazu select můžete projektovat dokument digitálního dvojčete tak, jak je, aniž byste ho přiřadili k vlastnosti v sadě výsledků.
Poznámka:
SELECT *
je platná syntaxe pouze v případě, že dotaz nepoužívá JOIN
. Další informace o dotazech, které používají JOIN
, najdete v referenčních informacích k dotazovacímu jazyku Azure Digital Twins: klauzule JOIN.
Syntaxe
SELECT *
--FROM ...
Návraty
Sada vlastností vrácených z dotazu.
Příklad
Následující dotaz vrátí všechna digitální dvojčata v instanci.
SELECT *
FROM DIGITALTWINS
SELECT sloupce s projekcemi
Projekce v klauzuli SELECT můžete použít k výběru sloupců, které dotaz vrátí. Můžete zadat pojmenované kolekce dvojčat a relací nebo vlastnosti dvojčat a relací.
Projekce je nyní podporována pro primitivní vlastnosti i komplexní vlastnosti.
Syntaxe
Promítnout kolekci:
SELECT <twin-or-relationship-collection>
Projekt vlastnosti:
SELECT <twin-or-relationship-collection>.<property-name>
Návraty
Kolekce dvojčat, vlastností nebo relací zadaných v projekci
Pokud vlastnost zahrnutá v projekci není k dispozici pro konkrétní datový řádek, vlastnost nebude podobně přítomna v sadě výsledků. Příklad tohoto chování naleznete v tématu Project vlastnost příklad: Vlastnost není k dispozici pro řádek dat.
Příklady
Ukázkový scénář
V následujících příkladech zvažte graf dvojčete, který obsahuje následující datové prvky:
- Dvojče továrny s názvem FactoryA
- Obsahuje vlastnost volanou
name
s hodnotouFactoryA
- Obsahuje vlastnost volanou
- Dvojče příjemce s názvem Contoso
- Obsahuje vlastnost volanou
name
s hodnotouContoso
- Obsahuje vlastnost volanou
- Vztah consumerRelationship z FactoryA na Contoso, který se nazývá
FactoryA-consumerRelationship-Contoso
- Obsahuje vlastnost volanou
managedBy
s hodnotouJeff
- Obsahuje vlastnost volanou
Tady je diagram znázorňující tento scénář:
Příklad kolekce projektů
Níže je příklad dotazu, který projektuje kolekci z tohoto grafu. Následující dotaz vrátí všechna digitální dvojčata v instanci pojmenováním celé kolekce T
dvojčat a promítnutím T
jako kolekci, která se má vrátit.
SELECT T
FROM DIGITALTWINS T
Tady je datová část JSON vrácená z tohoto dotazu:
{
"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 example
Projekce se běžně používá k vrácení kolekce zadané v objektu JOIN
. Následující dotaz pomocí projekce vrátí data příjemce, továrny a relace. Další informace o JOIN
syntaxi použité v příkladu najdete v referenčních informacích k dotazovacímu jazyku Azure Digital Twins: klauzule JOIN.
SELECT Consumer, Factory, Relationship
FROM DIGITALTWINS Factory
JOIN Consumer RELATED Factory.consumerRelationship Relationship
WHERE Factory.$dtId = 'FactoryA'
Tady je datová část JSON vrácená z tohoto dotazu:
{
"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"
}
Příklad vlastnosti projektu
Tady je příklad, který projektuje vlastnost. Následující dotaz pomocí projekce vrátí name
vlastnost dvojčete příjemce a managedBy
vlastnost relace.
SELECT Consumer.name, Relationship.managedBy
FROM DIGITALTWINS Factory
JOIN Consumer RELATED Factory.consumerRelationship Relationship
WHERE Factory.$dtId = 'FactoryA'
Tady je datová část JSON vrácená z tohoto dotazu:
{
"value": [
{
"result": [
{
"managedBy": "Jeff",
"name": "Contoso"
}
]
}
],
"continuationToken": "null"
}
Příklad vlastnosti projektu: Vlastnost není k dispozici pro datový řádek
Pokud vlastnost zahrnutá v projekci není k dispozici pro konkrétní datový řádek, vlastnost nebude podobně přítomna v sadě výsledků.
V tomto příkladu zvažte sadu dvojčat, která představují osoby. Některá dvojčata mají s nimi spojené věky, ale jiné ne.
Tady je dotaz, který projekty a name
age
vlastnosti:
SELECT name, age
FROM DIGITALTWINS
Výsledek může vypadat nějak takto, age
protože vlastnost chybí u některých dvojčat ve výsledku, ve kterém dvojčata tuto vlastnost nemají.
{
"value": [
{
"result": [
{
"name": "John",
"age": 27
},
{
"name": "Keanu"
}
]
}
],
"continuationToken": "null"
}
VYBRAT POČET
Tato metoda slouží ke spočítání počtu položek v sadě výsledků a vrácení tohoto čísla.
Syntaxe
SELECT COUNT()
Argumenty
Nezaokrouhlovat.
Návraty
Hodnota int
.
Příklad
Následující dotaz vrátí počet všech digitálních dvojčat v instanci.
SELECT COUNT()
FROM DIGITALTWINS
Následující dotaz vrátí počet všech relací v instanci.
SELECT COUNT()
FROM RELATIONSHIPS
SELECT TOP
Tato metoda slouží k vrácení pouze některých hlavních položek, které splňují požadavky dotazu.
Syntaxe
SELECT TOP(<number-of-return-items>)
Argumenty
Hodnota int
určující počet nejlepších položek, které chcete vybrat.
Návraty
Kolekce dvojčat.
Příklad
Následující dotaz vrátí pouze prvních pět digitálních dvojčat v instanci.
SELECT TOP(5)
FROM DIGITALTWINS