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 di Gemelli digitali di Azure.
La clausola SELECT è la prima parte di una query. Specifica l'elenco di colonne restituite dalla query.
Questa clausola è obbligatoria per tutte le query.
SELECT *
Usare il *
carattere in un'istruzione select per proiettare il documento di Gemelli digitali così come è, senza assegnarlo a una proprietà nel set di risultati.
Nota
SELECT *
è solo una sintassi valida quando la query non usa un oggetto JOIN
. Per altre informazioni sulle query che usano JOIN
, vedere Informazioni di riferimento sul linguaggio di query di Gemelli digitali di Azure: clausola JOIN.
Sintassi
SELECT *
--FROM ...
Valori restituiti
Set di proprietà restituite dalla query.
Esempio
La query seguente restituisce tutti i gemelli digitali nell'istanza di .
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>
Valori restituiti
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à di Project: Property not present for a data row .For an example of this behavior, see Project property example: Property not present for a data row.
Esempi
Scenario di esempio
Per gli esempi seguenti, considerare un grafo gemello che contiene gli elementi di dati seguenti:
- Un gemello factory denominato FactoryA
- Contiene una proprietà denominata
name
con un valore diFactoryA
- Contiene una proprietà denominata
- Un dispositivo gemello consumer denominato Contoso
- Contiene una proprietà denominata
name
con un valore diContoso
- Contiene una proprietà denominata
- Relazione consumerRelationship da FactoryA a Contoso, chiamata
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
di gemelli 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"
}
Esempio di Progetto con JOIN
La proiezione viene comunemente usata per restituire una raccolta specificata in un oggetto JOIN
. La query seguente usa la proiezione per restituire i dati di Consumer, Factory e Relationship. Per altre informazioni sulla JOIN
sintassi usata nell'esempio, 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à del progetto: 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 associato a loro età, ma altri no.
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
Nessuno.
Valori restituiti
Valore int
.
Esempio
La query seguente restituisce il conteggio di tutti i gemelli digitali nell'istanza di .
SELECT COUNT()
FROM DIGITALTWINS
La query seguente restituisce il conteggio di tutte le relazioni nell'istanza di .
SELECT COUNT()
FROM RELATIONSHIPS
SELECT TOP
Utilizzare questo metodo per restituire solo alcuni degli elementi principali che soddisfano i requisiti di query.
Sintassi
SELECT TOP(<number-of-return-items>)
Argomenti
Valore int
che specifica il numero di elementi principali da selezionare.
Valori restituiti
Raccolta di gemelli.
Esempio
La query seguente restituisce solo i primi cinque gemelli digitali nell'istanza.
SELECT TOP(5)
FROM DIGITALTWINS