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 JOINnajdete 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 hodnotou FactoryA
  • Dvojče spotřebitele s názvem Contoso
    • Obsahuje vlastnost s názvem name s hodnotou Contoso
  • Vztah consumerRelationship z factoryA do Contoso s názvem FactoryA-consumerRelationship-Contoso
    • Obsahuje vlastnost s názvem managedBy s hodnotou Jeff

Tady je diagram ilustrující tento scénář:

Diagram znázorňující výše popsaný ukázkový graf

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