Dokumentacja języka zapytań usługi Azure Digital Twins: klauzula SELECT

Ten dokument zawiera informacje referencyjne dotyczące klauzuli SELECT dla języka zapytań usługi Azure Digital Twins.

Klauzula SELECT jest pierwszą częścią zapytania. Określa listę kolumn, które zostanie zwrócone przez zapytanie.

Ta klauzula jest wymagana dla wszystkich zapytań.

WYBIERZ*

* Użyj znaku w instrukcji select, aby projektować dokument cyfrowej reprezentacji bliźniaczej bez przypisywania go do właściwości w zestawie wyników.

Uwaga

SELECT *jest prawidłową składnią tylko wtedy, gdy zapytanie nie używa .JOIN Aby uzyskać więcej informacji na temat zapytań korzystających z usługi JOIN, zobacz Azure Digital Twins query language reference: JOIN clause (Dokumentacja języka zapytań usługi Azure Digital Twins: klauzula JOIN).

Składnia

SELECT *
--FROM ...

Zwraca

Zestaw właściwości zwracanych z zapytania.

Przykład

Poniższe zapytanie zwraca wszystkie cyfrowe reprezentacje bliźniacze w wystąpieniu.

SELECT *
FROM DIGITALTWINS

WYBIERANIE kolumn z projekcjami

W klauzuli SELECT można użyć projekcji, aby wybrać kolumny zwracane przez zapytanie. Możesz określić nazwane kolekcje bliźniaczych reprezentacji i relacji lub właściwości bliźniaczych reprezentacji i relacji.

Projekcja jest teraz obsługiwana zarówno dla właściwości pierwotnych, jak i właściwości złożonych.

Składnia

Aby projektować kolekcję:

SELECT <twin-or-relationship-collection>

Aby projektować właściwość:

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

Zwraca

Kolekcja bliźniaczych reprezentacji, właściwości lub relacji określonych w projekcji.

Jeśli właściwość uwzględniona w projekcji nie jest obecna dla określonego wiersza danych, właściwość nie będzie podobnie obecna w zestawie wyników. Przykład tego zachowania można znaleźć w temacie Project property example: Property not present for a data row (Przykład właściwości projektu: właściwość nie jest obecna dla wiersza danych).

Przykłady

Przykładowy scenariusz

W poniższych przykładach rozważ wykres bliźniaczej reprezentacji, który zawiera następujące elementy danych:

  • Bliźniacze reprezentacja fabryki o nazwie FactoryA
    • Zawiera właściwość o nazwie name z wartością FactoryA
  • Bliźniacze reprezentacja konsumenta o nazwie Contoso
    • Zawiera właściwość o nazwie name z wartością Contoso
  • Relacja consumerRelationship z fabryki do firmy Contoso o nazwie FactoryA-consumerRelationship-Contoso
    • Zawiera właściwość o nazwie managedBy z wartością Jeff

Oto diagram ilustrujący ten scenariusz:

Diagram przedstawiający przykładowy graf opisany powyżej.

Przykład kolekcji projektów

Poniżej przedstawiono przykładowe zapytanie, które projektuje kolekcję z tego grafu. Poniższe zapytanie zwraca wszystkie cyfrowe reprezentacje bliźniacze w wystąpieniu przez nadanie całej kolekcji bliźniaczej reprezentacji i projekcję T jako kolekcję T do zwrócenia.

SELECT T
FROM DIGITALTWINS T

Oto ładunek JSON zwrócony z tego zapytania:

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

Przykład projektu z funkcją JOIN

Projekcja jest często używana do zwracania kolekcji określonej w obiekcie JOIN. Poniższe zapytanie używa projekcji do zwracania danych konsumenta, fabryki i relacji. Aby uzyskać więcej informacji na temat składni używanej JOIN w przykładzie, zobacz Dokumentacja języka zapytań usługi Azure Digital Twins: klauzula JOIN.

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

Oto ładunek JSON zwrócony z tego zapytania:

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

Przykład właściwości projektu

Oto przykład, który projektuje właściwość. Poniższe zapytanie używa projekcji, aby zwrócić name właściwość bliźniaczej reprezentacji klienta i managedBy właściwość relacji.

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

Oto ładunek JSON zwrócony z tego zapytania:

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

Przykład właściwości projektu: właściwość nie jest obecna dla wiersza danych

Jeśli właściwość uwzględniona w projekcji nie jest obecna dla określonego wiersza danych, właściwość nie będzie podobnie obecna w zestawie wyników.

Rozważmy w tym przykładzie zestaw bliźniaczych reprezentacji reprezentujących osoby. Niektóre z bliźniąt mają związane z nimi wieki, ale inne nie.

Oto zapytanie, które projektuje name właściwości i age :

SELECT name, age 
FROM DIGITALTWINS

Wynik może wyglądać mniej więcej tak, a age właściwość brakuje w niektórych bliźniaczych reprezentacjach w wyniku, w którym bliźniacze reprezentacje nie mają tej właściwości.

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

WYBIERZ LICZBĘ

Użyj tej metody, aby zliczyć liczbę elementów w zestawie wyników i zwrócić tę liczbę.

Składnia

SELECT COUNT()

Argumenty

Brak.

Zwraca

Wartość int .

Przykład

Poniższe zapytanie zwraca liczbę wszystkich cyfrowych reprezentacji bliźniaczych w wystąpieniu.

SELECT COUNT()
FROM DIGITALTWINS

Następujące zapytanie zwraca liczbę wszystkich relacji w wystąpieniu.

SELECT COUNT()
FROM RELATIONSHIPS

WYBIERZ POZYCJĘ TOP

Użyj tej metody, aby zwrócić tylko niektóre z najważniejszych elementów spełniających wymagania zapytania.

Składnia

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

Argumenty

Wartość int określająca liczbę najważniejszych elementów do wybrania.

Zwraca

Kolekcja bliźniaczych reprezentacji.

Przykład

Poniższe zapytanie zwraca tylko pięć pierwszych cyfrowych reprezentacji bliźniaczych w wystąpieniu.

SELECT TOP(5)
FROM DIGITALTWINS