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 wordt de lijst met kolommen opgegeven die door de query worden geretourneerd.

Deze component is vereist voor alle query's.

SELECTEER*

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

Notitie

SELECT * is alleen geldige syntaxis wanneer de query geen gebruikt JOIN. Zie Naslaginformatie over azure Digital Twins-querytaal: JOIN-component voor meer informatie over query's JOINmet behulp van .

Syntax

SELECT *
--FROM ...

Retouren

De set eigenschappen die worden geretourneerd door de query.

Voorbeeld

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.

Syntax

Een verzameling project maken:

SELECT <twin-or-relationship-collection>

Een eigenschap project maken:

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

Retouren

Een verzameling dubbels, 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 evenmin aanwezig in de resultatenset. Zie Voorbeeld van projecteigenschap: eigenschap niet aanwezig voor een gegevensrij voor een voorbeeld van dit gedrag.

Voorbeelden

Voorbeeldscenario

Voor de volgende voorbeelden kunt u een tweelinggrafiek gebruiken die de volgende gegevenselementen bevat:

  • Een factorydubbel met de naam FactoryA
    • Bevat een eigenschap met de naam name met de waarde van FactoryA
  • Een consumentendubbel met de naam Contoso
    • Bevat een eigenschap met de naam name met de waarde van Contoso
  • Een consumerRelatierelatie van FactoryA met Contoso, met de naam FactoryA-consumerRelationship-Contoso
    • Bevat een eigenschap met de naam managedBy met de waarde van Jeff

Hier volgt een diagram dat dit scenario illustreert:

Diagram met de hierboven beschreven voorbeeldgrafiek.

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 meestal gebruikt om een verzameling te retourneren die is opgegeven in een JOIN. In de volgende query wordt projectie gebruikt om de gegevens van consumer, factory en relatie te retourneren. Zie Naslaginformatie over azure Digital Twins-querytaal: JOIN-component voor meer informatie over de JOIN syntaxis die in het voorbeeld wordt gebruikt.

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 eigenschap van de name consumerdubbel en de eigenschap van de managedBy 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 evenmin aanwezig in de resultatenset.

Neem in dit voorbeeld een set tweelingen die personen vertegenwoordigen. Sommige tweelingen hebben leeftijden, maar andere niet.

Hier volgt een query waarmee de name eigenschappen en age worden geprojecteert:

SELECT name, age 
FROM DIGITALTWINS

Het resultaat kan er ongeveer als volgt uitzien, waarbij de age eigenschap ontbreekt in sommige tweelingen in het resultaat waarbij 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 aantal te retourneren.

Syntaxis

SELECT COUNT()

Argumenten

Geen.

Retouren

Een int waarde.

Voorbeeld

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

TOP 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.

Voorbeeld

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

SELECT TOP(5)
FROM DIGITALTWINS