Referência da linguagem de consulta do Azure Digital Twins: cláusula SELECT
Este documento contém informações de referência sobre a cláusula SELECT para a linguagem de consulta do Azure Digital Twins.
A cláusula SELECT é a primeira parte de uma consulta. Especifica a lista de colunas que a consulta irá devolver.
Esta cláusula é necessária para todas as consultas.
SELECT *
Utilize o *
caráter numa instrução select para projetar o documento do duplo digital tal como está, sem o atribuir a uma propriedade no conjunto de resultados.
Nota
SELECT *
só é uma sintaxe válida quando a consulta não utiliza um JOIN
. Para obter mais informações sobre consultas com JOIN
o , veja Referência da linguagem de consulta do Azure Digital Twins: cláusula JOIN.
Syntax
SELECT *
--FROM ...
Devoluções
O conjunto de propriedades que são devolvidas da consulta.
Exemplo
A consulta seguinte devolve todos os duplos digitais na instância.
SELECT *
FROM DIGITALTWINS
Select columns with projections (SELECIONAR colunas com projeções)
Pode utilizar projeções na cláusula SELECT para escolher as colunas que uma consulta irá devolver. Pode especificar coleções nomeadas de duplos e relações ou propriedades de duplos e relações.
A projeção é agora suportada para propriedades primitivas e propriedades complexas.
Syntax
Para projetar uma coleção:
SELECT <twin-or-relationship-collection>
Para projetar uma propriedade:
SELECT <twin-or-relationship-collection>.<property-name>
Devoluções
Uma coleção de duplos, propriedades ou relações especificada na projeção.
Se uma propriedade incluída na projeção não estiver presente para uma linha de dados específica, a propriedade não estará igualmente presente no conjunto de resultados. Para obter um exemplo deste comportamento, veja Exemplo de propriedade do projeto: Propriedade não presente para uma linha de dados.
Exemplos
Cenário de exemplo
Para os exemplos seguintes, considere um gráfico duplo que contém os seguintes elementos de dados:
- Um duplo de fábrica chamado FactoryA
- Contém uma propriedade chamada
name
com um valor deFactoryA
- Contém uma propriedade chamada
- Um duplo consumidor chamado Contoso
- Contém uma propriedade chamada
name
com um valor deContoso
- Contém uma propriedade chamada
- Uma relação consumerRelationship de FactoryA para Contoso, chamada
FactoryA-consumerRelationship-Contoso
- Contém uma propriedade chamada
managedBy
com um valor deJeff
- Contém uma propriedade chamada
Eis um diagrama que ilustra este cenário:
Exemplo de coleção de projetos
Segue-se uma consulta de exemplo que projeta uma coleção a partir deste gráfico. A consulta seguinte devolve todos os duplos digitais na instância ao atribuir um nome a toda a coleção T
de duplos e ao projetar T
como a coleção a devolver.
SELECT T
FROM DIGITALTWINS T
Eis o payload JSON que é devolvido desta consulta:
{
"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"
}
Exemplo de Projeto com JOIN
Normalmente, a projeção é utilizada para devolver uma coleção especificada num JOIN
. A consulta seguinte utiliza a projeção para devolver os dados do Consumidor, Fábrica e Relação. Para obter mais informações sobre a JOIN
sintaxe utilizada no exemplo, veja Referência da linguagem de consulta do Azure Digital Twins: cláusula JOIN.
SELECT Consumer, Factory, Relationship
FROM DIGITALTWINS Factory
JOIN Consumer RELATED Factory.consumerRelationship Relationship
WHERE Factory.$dtId = 'FactoryA'
Eis o payload JSON que é devolvido desta consulta:
{
"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"
}
Exemplo de propriedade do projeto
Eis um exemplo que projeta uma propriedade. A consulta seguinte utiliza a projeção para devolver a name
propriedade do Duplo consumidor e a managedBy
propriedade da relação.
SELECT Consumer.name, Relationship.managedBy
FROM DIGITALTWINS Factory
JOIN Consumer RELATED Factory.consumerRelationship Relationship
WHERE Factory.$dtId = 'FactoryA'
Eis o payload JSON que é devolvido desta consulta:
{
"value": [
{
"result": [
{
"managedBy": "Jeff",
"name": "Contoso"
}
]
}
],
"continuationToken": "null"
}
Exemplo de propriedade do projeto: Propriedade não presente para uma linha de dados
Se uma propriedade incluída na projeção não estiver presente para uma linha de dados específica, a propriedade não estará igualmente presente no conjunto de resultados.
Considere para este exemplo um conjunto de duplos que representam pessoas. Alguns dos gémeos têm idades associadas, mas outros não.
Eis uma consulta que projeta as name
propriedades e age
:
SELECT name, age
FROM DIGITALTWINS
O resultado pode ter um aspeto semelhante ao seguinte, com a age
propriedade em falta em alguns duplos no resultado em que os duplos não têm esta propriedade.
{
"value": [
{
"result": [
{
"name": "John",
"age": 27
},
{
"name": "Keanu"
}
]
}
],
"continuationToken": "null"
}
SELECIONAR CONTAR
Utilize este método para contar o número de itens no conjunto de resultados e devolver esse número.
Sintaxe
SELECT COUNT()
Argumentos
Nenhum.
Devoluções
Um int
valor.
Exemplo
A consulta seguinte devolve a contagem de todos os duplos digitais na instância.
SELECT COUNT()
FROM DIGITALTWINS
A consulta seguinte devolve a contagem de todas as relações na instância.
SELECT COUNT()
FROM RELATIONSHIPS
SELECIONE SUPERIOR
Utilize este método para devolver apenas alguns dos principais itens que cumprem os requisitos de consulta.
Sintaxe
SELECT TOP(<number-of-return-items>)
Argumentos
Um int
valor que especifica o número de itens principais a selecionar.
Devoluções
Uma coleção de gémeos.
Exemplo
A consulta seguinte devolve apenas os primeiros cinco duplos digitais na instância.
SELECT TOP(5)
FROM DIGITALTWINS