Delen via


Naslaginformatie over azure Digital Twins-querytaal: SELECT-component

Dit document bevat naslaginformatie over de SELECT-component voor de Azure Digital Twins-querytaal.

De SELECT-component is het eerste deel van een query. Hiermee geeft u de lijst met kolommen op die door de query worden geretourneerd.

Deze component is vereist voor alle query's.

SELECTEREN*

Gebruik het * teken in een select-instructie om het document met digitale dubbels te projecteren, zonder het toe te wijzen aan een eigenschap in de resultatenset.

Notitie

SELECT * is alleen geldige syntaxis wanneer de query geen gebruik maakt van een JOIN. Zie azure Digital Twins-querytaalreferentie: JOIN-component voor meer informatie over query's met behulp van JOINquery's.

Syntaxis

SELECT *
--FROM ...

Retouren

De set eigenschappen die worden geretourneerd door de query.

Opmerking

De volgende query retourneert alle digitale dubbels in het exemplaar.

SELECT *
FROM DIGITALTWINS

SELECT-kolommen met projecties

U kunt projecties in de SELECT-component gebruiken om te kiezen welke kolommen een query retourneert. U kunt benoemde verzamelingen van tweelingen en relaties, of eigenschappen van tweelingen en relaties opgeven.

Projectie wordt nu ondersteund voor zowel primitieve eigenschappen als complexe eigenschappen.

Syntaxis

Een verzameling projecteren:

SELECT <twin-or-relationship-collection>

Een eigenschap projecteren:

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

Retouren

Een verzameling tweelingen, eigenschappen of relaties die zijn opgegeven in de projectie.

Als een eigenschap die is opgenomen in de projectie niet aanwezig is voor een bepaalde gegevensrij, is de eigenschap ook niet aanwezig in de resultatenset. Zie projecteigenschapsvoorbeeld voor een voorbeeld van dit gedrag: Eigenschap niet aanwezig voor een gegevensrij.

Voorbeelden

Voorbeeldscenario

Bekijk voor de volgende voorbeelden een dubbelgrafiek die de volgende gegevenselementen bevat:

  • Een factorydubbel genaamd FactoryA
    • Bevat een eigenschap die wordt aangeroepen name met een waarde van FactoryA
  • Een consumentendubbel met de naam Contoso
    • Bevat een eigenschap die wordt aangeroepen name met een waarde van Contoso
  • Een consumerRelationship-relatie van FactoryA naar Contoso, aangeroepen FactoryA-consumerRelationship-Contoso
    • Bevat een eigenschap die wordt aangeroepen managedBy met een waarde van Jeff

Hier volgt een diagram waarin dit scenario wordt geïllustreerd:

Diagram met de voorbeeldgrafiek die hierboven wordt beschreven.

Voorbeeld van projectverzameling

Hieronder ziet u een voorbeeldquery die een verzameling uit deze grafiek projecteert. De volgende query retourneert alle digitale dubbels in het exemplaar door de volledige tweelingverzameling T een naam te geven en te projecteren T als de verzameling die moet worden geretourneerd.

SELECT T
FROM DIGITALTWINS T

Dit is de JSON-nettolading die wordt geretourneerd door deze query:

{
  "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 met JOIN-voorbeeld

Projectie wordt vaak gebruikt om een verzameling te retourneren die is opgegeven in een JOIN. De volgende query maakt gebruik van projectie om de gegevens van de consument, factory en relatie te retourneren. Zie de naslaginformatie over azure Digital Twins-querytaal voor meer informatie over de JOIN syntaxis die in het voorbeeld wordt gebruikt: JOIN-component.

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

Dit is de JSON-nettolading die wordt geretourneerd door deze query:

{
  "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"
}

Voorbeeld van projecteigenschap

Hier volgt een voorbeeld dat een eigenschap projecteert. In de volgende query wordt projectie gebruikt om de name eigenschap van de consumerdubbel en de managedBy eigenschap van de relatie te retourneren.

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

Dit is de JSON-nettolading die wordt geretourneerd door deze query:

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

Voorbeeld van projecteigenschap: Eigenschap niet aanwezig voor een gegevensrij

Als een eigenschap die is opgenomen in de projectie niet aanwezig is voor een bepaalde gegevensrij, is de eigenschap ook niet aanwezig in de resultatenset.

Bekijk voor dit voorbeeld een set tweelingen die personen vertegenwoordigen. Sommige tweelingen hebben leeftijden gekoppeld, maar andere niet.

Hier volgt een query die de name en age eigenschappen projecteert:

SELECT name, age 
FROM DIGITALTWINS

Het resultaat kan er ongeveer als volgt uitzien, waarbij de age eigenschap ontbreekt in sommige tweelingen in het resultaat waarin de tweelingen deze eigenschap niet hebben.

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

AANTAL SELECTEREN

Gebruik deze methode om het aantal items in de resultatenset te tellen en dat getal te retourneren.

Syntaxis

SELECT COUNT()

Argumenten

Geen.

Retouren

Een int waarde.

Opmerking

De volgende query retourneert het aantal digitale dubbels in het exemplaar.

SELECT COUNT()
FROM DIGITALTWINS

De volgende query retourneert het aantal relaties in het exemplaar.

SELECT COUNT()
FROM RELATIONSHIPS

BOVENSTE SELECTEREN

Gebruik deze methode om slechts enkele van de belangrijkste items te retourneren die voldoen aan de queryvereisten.

Syntaxis

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

Argumenten

Een int waarde die het aantal topitems aangeeft dat moet worden geselecteerd.

Retouren

Een verzameling tweelingen.

Opmerking

De volgende query retourneert alleen de eerste vijf digitale dubbels in het exemplaar.

SELECT TOP(5)
FROM DIGITALTWINS