Az Azure Digital Twins lekérdezési nyelvének referenciája: SELECT záradék

Ez a dokumentum az Azure Digital Twins lekérdezési nyelvSELECT záradékával kapcsolatos referenciainformációkat tartalmaz.

A SELECT záradék a lekérdezés első része. Meghatározza a lekérdezés által visszaadott oszlopok listáját.

Ez a záradék minden lekérdezéshez szükséges.

VÁLASSZA KI*

* A select utasításban szereplő karakterrel kivetítheti a digitális ikerdokumentumot úgy, ahogy van, anélkül, hogy hozzá lenne rendelve egy tulajdonsághoz az eredményhalmazban.

Megjegyzés

SELECT * csak akkor érvényes szintaxis, ha a lekérdezés nem használ JOIN. A használatával JOINvégzett lekérdezésekkel kapcsolatos további információkért lásd: Az Azure Digital Twins lekérdezési nyelvének referenciája: JOIN záradék.

Syntax

SELECT *
--FROM ...

Válaszok

A lekérdezésből visszaadott tulajdonságok halmaza.

Példa

Az alábbi lekérdezés a példány összes digitális ikerpéldányát visszaadja.

SELECT *
FROM DIGITALTWINS

SELECT oszlopok leképezésekkel

A SELECT záradékban lévő leképezésekkel kiválaszthatja, hogy a lekérdezés mely oszlopokat adja vissza. Megadhatja az ikerpéldányok és kapcsolatok nevesített gyűjteményeit, illetve az ikerpéldányok és kapcsolatok tulajdonságait.

A leképezés mostantól a primitív tulajdonságok és az összetett tulajdonságok esetében is támogatott.

Syntax

Gyűjtemény kivetítéséhez:

SELECT <twin-or-relationship-collection>

Tulajdonság kivetítéséhez:

SELECT <twin-or-relationship-collection>.<property-name>

Válaszok

A leképezésben megadott ikerpéldányok, tulajdonságok vagy kapcsolatok gyűjteménye.

Ha a leképezésben szereplő tulajdonság nem található meg egy adott adatsoron, a tulajdonság hasonlóképpen nem jelenik meg az eredményhalmazban. Erre a viselkedésre példaként tekintse meg a Project tulajdonságának példáját: Az adatsorhoz nem tartozó tulajdonság.

Példák

Példaforgatókönyv

Az alábbi példákhoz vegyünk egy ikergráfot, amely a következő adatelemeket tartalmazza:

  • FactoryA nevű factory ikerpéldány
    • Egy nevű name tulajdonságot tartalmaz, amelynek értéke FactoryA
  • Egy Contoso nevű fogyasztói ikerpéldány
    • Egy nevű name tulajdonságot tartalmaz, amelynek értéke Contoso
  • A FactoryA és a Contoso közötti consumerRelationship kapcsolat, amelynek neve FactoryA-consumerRelationship-Contoso
    • Egy nevű managedBy tulajdonságot tartalmaz, amelynek értéke Jeff

Íme egy diagram, amely az alábbi forgatókönyvet szemlélteti:

A fent leírt mintagráfot bemutató diagram.

Példa projektgyűjteményre

Az alábbiakban egy példa lekérdezés látható, amely egy gyűjteményt mutat be ebből a gráfból. A következő lekérdezés a példányban lévő összes digitális ikerpéldányt visszaadja a teljes ikerpéldány-gyűjtemény T elnevezésével, és a visszaküldött gyűjteményként való kivetítés T révén.

SELECT T
FROM DIGITALTWINS T

A lekérdezés által visszaadott JSON-hasznos adat:

{
  "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 JOIN példával

A leképezést általában a függvényben JOINmegadott gyűjtemény visszaadására használják. Az alábbi lekérdezés leképezéssel adja vissza a Fogyasztó, a Gyár és a Kapcsolat adatait. A példában használt szintaxisról JOIN további információt az Azure Digital Twins lekérdezési nyelvének referencianyelve: JOIN záradék című témakörben talál.

SELECT Consumer, Factory, Relationship
FROM DIGITALTWINS Factory
JOIN Consumer RELATED Factory.consumerRelationship Relationship
WHERE Factory.$dtId = 'FactoryA'

A lekérdezés által visszaadott JSON-hasznos adat:

{
  "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élda a Project tulajdonságra

Íme egy példa, amely egy tulajdonságot mutat be. Az alábbi lekérdezés leképezéssel adja vissza a name Consumer ikerpéldány tulajdonságát és a managedBy kapcsolat tulajdonságát.

SELECT Consumer.name, Relationship.managedBy
FROM DIGITALTWINS Factory
JOIN Consumer RELATED Factory.consumerRelationship Relationship
WHERE Factory.$dtId = 'FactoryA'

A lekérdezés által visszaadott JSON-hasznos adat:

{
  "value": [
    {
      "result": [
        {
          "managedBy": "Jeff",
          "name": "Contoso"
        }
      ]
    }
  ],
  "continuationToken": "null"
}

Projekttulajdonság-példa: Adatsorhoz nem tartozó tulajdonság

Ha a leképezésben szereplő tulajdonság nem található meg egy adott adatsoron, a tulajdonság hasonlóképpen nem jelenik meg az eredményhalmazban.

Ebben a példában vegyünk egy ikerpéldány-készletet, amely az embereket jelöli. Néhány ikerpéldány életkora van hozzájuk rendelve, mások viszont nem.

Íme egy lekérdezés, amely a és age a tulajdonságot projekteliname:

SELECT name, age 
FROM DIGITALTWINS

Az eredmény így nézhet ki, és az age eredményben hiányzik néhány ikerpéldány tulajdonsága, ahol az ikerpéldányok nem rendelkeznek ezzel a tulajdonsággal.

{
  "value": [
    {
      "result": [
        {
          "name": "John",
          "age": 27
        },
        {
          "name": "Keanu"
        }
      ]
    }
  ],
  "continuationToken": "null"
}

DARABSZÁM KIVÁLASZTÁSA

Ezzel a módszerrel megszámlálhatja az eredményhalmaz elemeinek számát, és visszaadhatja ezt a számot.

Szintaxis

SELECT COUNT()

Argumentumok

Nincsenek.

Válaszok

Egy int érték.

Példa

A következő lekérdezés a példány összes digitális ikerpéldányának számát adja vissza.

SELECT COUNT()
FROM DIGITALTWINS

A következő lekérdezés a példány összes kapcsolatának számát adja vissza.

SELECT COUNT()
FROM RELATIONSHIPS

VÁLASSZA A FELSŐ LEHETŐSÉGET

Ezzel a módszerrel csak a lekérdezési követelményeknek megfelelő legfontosabb elemeket adja vissza.

Szintaxis

SELECT TOP(<number-of-return-items>)

Argumentumok

Egy int érték, amely a kijelölendő legfontosabb elemek számát adja meg.

Válaszok

Ikerpéldányok gyűjteménye.

Példa

A következő lekérdezés csak az első öt digitális ikerpéldányt adja vissza a példányban.

SELECT TOP(5)
FROM DIGITALTWINS