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
- Zawiera właściwość o nazwie
- Bliźniacze reprezentacja konsumenta o nazwie Contoso
- Zawiera właściwość o nazwie
name
z wartościąContoso
- Zawiera właściwość o nazwie
- Relacja consumerRelationship z fabryki do firmy Contoso o nazwie
FactoryA-consumerRelationship-Contoso
- Zawiera właściwość o nazwie
managedBy
z wartościąJeff
- Zawiera właściwość o nazwie
Oto diagram ilustrujący ten scenariusz:
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