Sdílet prostřednictvím


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 hodnotou FactoryA
  • Dvojče příjemce s názvem Contoso
    • Obsahuje vlastnost volanou name s hodnotou Contoso
  • Vztah consumerRelationship z FactoryA na Contoso, který se nazývá FactoryA-consumerRelationship-Contoso
    • Obsahuje vlastnost volanou managedBy s hodnotou Jeff

Tady je diagram znázorňující tento scénář:

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

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 nameage 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