Referenční informace k dotazovacímu jazyku služby 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 je povinná pro všechny dotazy.
VYBERTE*
Pomocí znaku *
v příkazu select můžete dokument digitálního dvojčete promítat tak, jak je, bez přiřazení vlastnosti v sadě výsledků dotazu.
Poznámka
SELECT *
je platná pouze v případech, kdy dotaz nepoužívá JOIN
. Další informace o dotazech využívajících JOIN
najdete v tématu Referenční informace k dotazovacímu jazyku služby Azure Digital Twins: Klauzule JOIN.
Syntax
SELECT *
--FROM ...
Návraty
Sada vlastností, které jsou vráceny 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
Pomocí projekcí v klauzuli SELECT můžete zvolit sloupce, které dotaz vrátí. Můžete zadat pojmenované kolekce dvojčat a relací nebo vlastnosti dvojčat a relací.
Projekce se teď podporuje pro primitivní i komplexní vlastnosti.
Syntax
Projekt kolekce:
SELECT <twin-or-relationship-collection>
Promítnutí 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í řádek dat, nebude vlastnost podobně přítomen v sadě výsledků. Příklad tohoto chování najdete v tématu Příklad vlastnosti projektu: Vlastnost není k dispozici pro řádek dat.
Příklady
Příklad scénáře
V následujících příkladech si představte graf dvojčat, který obsahuje následující datové prvky:
- Dvojče továrny s názvem FactoryA
- Obsahuje vlastnost s názvem
name
s hodnotouFactoryA
- Obsahuje vlastnost s názvem
- Dvojče spotřebitele s názvem Contoso
- Obsahuje vlastnost s názvem
name
s hodnotouContoso
- Obsahuje vlastnost s názvem
- Vztah consumerRelationship z factoryA do Contoso s názvem
FactoryA-consumerRelationship-Contoso
- Obsahuje vlastnost s názvem
managedBy
s hodnotouJeff
- Obsahuje vlastnost s názvem
Tady je diagram ilustrující tento scénář:
Příklad kolekce projektů
Níže je příklad dotazu, který promítá kolekci z tohoto grafu. Následující dotaz vrátí všechna digitální dvojčata v instanci tak, že pojme celou kolekci T
dvojčat a promítá T
ji jako kolekci, která se má vrátit.
SELECT T
FROM DIGITALTWINS T
Tady je datová část JSON vrácená tímto dotazem:
{
"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 používá projekci k vrácení dat příjemce, továrny a vztahu. Další informace o syntaxi použité v příkladu najdete v referenčních informacích k dotazovacímu jazyku Azure Digital Twins: klauzule JOIN.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á tímto dotazem:
{
"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 používá projekci k vrácení name
vlastnosti dvojčete příjemce a managedBy
vlastnosti 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á tímto dotazem:
{
"value": [
{
"result": [
{
"managedBy": "Jeff",
"name": "Contoso"
}
]
}
],
"continuationToken": "null"
}
Project property example: Property not present for a data row
Pokud vlastnost zahrnutá v projekci není k dispozici pro konkrétní řádek dat, nebude vlastnost podobně přítomen v sadě výsledků.
V tomto příkladu si představte sadu dvojčat, která představují lidi. Některá dvojčata mají věk spojený s nimi, ale jiná ne.
Tady je dotaz, který promítá name
vlastnosti a age
:
SELECT name, age
FROM DIGITALTWINS
Výsledek může vypadat nějak takto, přičemž age
vlastnost chybí v některých dvojčatech ve výsledku, kde dvojčata tuto vlastnost nemají.
{
"value": [
{
"result": [
{
"name": "John",
"age": 27
},
{
"name": "Keanu"
}
]
}
],
"continuationToken": "null"
}
VYBRAT POČET
Tato metoda slouží k určení počtu položek v sadě výsledků dotazu a vrácení tohoto čísla.
Syntaxe
SELECT COUNT()
Argumenty
Žádné
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
VYBRAT NAHOŘE
Tuto metodu použijte, pokud chcete vrátit pouze některé z 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 hlavních položek, které se mají 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