Informazioni di riferimento sul linguaggio di query di Gemelli digitali di Azure: clausola SELECT
Questo documento contiene informazioni di riferimento sulla clausola SELECT per il linguaggio di query gemelli digitali di Azure.
La clausola SELECT è la prima parte di una query. Specifica l'elenco di colonne restituite dalla query.
Questa clausola è necessaria per tutte le query.
SELECT *
Usare il carattere in un'istruzione select per proiettare il *
documento del gemello digitale come è, senza assegnarlo a una proprietà nel set di risultati.
Nota
SELECT *
è solo una sintassi valida quando la query non usa un JOIN
oggetto . Per altre informazioni sulle query con JOIN
, vedere Informazioni di riferimento sul linguaggio di query di Gemelli digitali di Azure: clausola JOIN.
Sintassi
SELECT *
--FROM ...
Restituisce
Set di proprietà restituite dalla query.
Esempio
La query seguente restituisce tutti i gemelli digitali nell'istanza.
SELECT *
FROM DIGITALTWINS
Colonne SELECT con proiezioni
È possibile usare le proiezioni nella clausola SELECT per scegliere le colonne restituite da una query. È possibile specificare raccolte denominate di gemelli e relazioni o proprietà di gemelli e relazioni.
La proiezione è ora supportata sia per le proprietà primitive che per le proprietà complesse.
Sintassi
Per proiettare una raccolta:
SELECT <twin-or-relationship-collection>
Per proiettare una proprietà:
SELECT <twin-or-relationship-collection>.<property-name>
Restituisce
Raccolta di gemelli, proprietà o relazioni specificate nella proiezione.
Se una proprietà inclusa nella proiezione non è presente per una determinata riga di dati, la proprietà non sarà presente nel set di risultati. Per un esempio di questo comportamento, vedere Esempio di proprietà project: proprietà non presente per una riga di dati.
Esempio
Scenario di esempio
Per gli esempi seguenti, prendere in considerazione un grafico gemello che contiene gli elementi dati seguenti:
- Un gemello Factory denominato FactoryA
- Contiene una proprietà denominata
name
con un valore diFactoryA
- Contiene una proprietà denominata
- Un consumer gemello denominato Contoso
- Contiene una proprietà denominata
name
con un valore diContoso
- Contiene una proprietà denominata
- Relazione consumerRelationship da FactoryA a Contoso, denominata
FactoryA-consumerRelationship-Contoso
- Contiene una proprietà denominata
managedBy
con un valore diJeff
- Contiene una proprietà denominata
Ecco un diagramma che illustra questo scenario:
Esempio di raccolta di progetti
Di seguito è riportata una query di esempio che proietta una raccolta da questo grafico. La query seguente restituisce tutti i gemelli digitali nell'istanza, assegnando un nome all'intera raccolta T
gemella e proiettando T
come raccolta da restituire.
SELECT T
FROM DIGITALTWINS T
Ecco il payload JSON restituito da questa 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"
}
Progetto con esempio JOIN
La proiezione viene comunemente usata per restituire una raccolta specificata in un JOIN
oggetto . La query seguente usa la proiezione per restituire i dati del consumer, della factory e della relazione. Per altre informazioni sulla sintassi usata nell'esempio JOIN
, vedere Informazioni di riferimento sul linguaggio di query di Gemelli digitali di Azure: clausola JOIN.
SELECT Consumer, Factory, Relationship
FROM DIGITALTWINS Factory
JOIN Consumer RELATED Factory.consumerRelationship Relationship
WHERE Factory.$dtId = 'FactoryA'
Ecco il payload JSON restituito da questa 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"
}
Esempio di proprietà del progetto
Ecco un esempio che proietta una proprietà. La query seguente usa la proiezione per restituire la name
proprietà del gemello Consumer e la managedBy
proprietà della relazione.
SELECT Consumer.name, Relationship.managedBy
FROM DIGITALTWINS Factory
JOIN Consumer RELATED Factory.consumerRelationship Relationship
WHERE Factory.$dtId = 'FactoryA'
Ecco il payload JSON restituito da questa query:
{
"value": [
{
"result": [
{
"managedBy": "Jeff",
"name": "Contoso"
}
]
}
],
"continuationToken": "null"
}
Esempio di proprietà project: proprietà non presente per una riga di dati
Se una proprietà inclusa nella proiezione non è presente per una determinata riga di dati, la proprietà non sarà presente nel set di risultati.
Si consideri per questo esempio un set di gemelli che rappresentano le persone. Alcuni dei gemelli hanno età associate a loro, ma altri non lo fanno.
Ecco una query che proietta le name
proprietà e age
:
SELECT name, age
FROM DIGITALTWINS
Il risultato potrebbe essere simile al seguente, con la age
proprietà mancante da alcuni gemelli nel risultato in cui i gemelli non hanno questa proprietà.
{
"value": [
{
"result": [
{
"name": "John",
"age": 27
},
{
"name": "Keanu"
}
]
}
],
"continuationToken": "null"
}
SELECT COUNT
Utilizzare questo metodo per contare il numero di elementi nel set di risultati e restituire tale numero.
Sintassi
SELECT COUNT()
Argomenti
No.
Restituisce
Valore int
.
Esempio
La query seguente restituisce il numero di tutti i gemelli digitali nell'istanza.
SELECT COUNT()
FROM DIGITALTWINS
La query seguente restituisce il conteggio di tutte le relazioni nell'istanza.
SELECT COUNT()
FROM RELATIONSHIPS
SELEZIONARE IN ALTO
Usare questo metodo per restituire solo alcuni degli elementi principali che soddisfano i requisiti della query.
Sintassi
SELECT TOP(<number-of-return-items>)
Argomenti
Valore int
che specifica il numero di elementi principali da selezionare.
Restituisce
Raccolta di gemelli.
Esempio
La query seguente restituisce solo i primi cinque gemelli digitali nell'istanza.
SELECT TOP(5)
FROM DIGITALTWINS