Referência de 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 dos Gêmeos Digitais do Azure.
A cláusula SELECT é a primeira parte de uma consulta. Ele especifica a lista de colunas que a consulta retornará.
Esta cláusula é necessária para todas as consultas.
SELECIONAR *
Use o *
caractere em uma instrução select para projetar o documento de gêmeo digital como está, sem atribuí-lo a uma propriedade no conjunto de resultados.
Nota
SELECT *
só é válida quando a consulta não usa um JOIN
arquivo . Para obter mais informações sobre consultas usando JOIN
o , consulte Referência de linguagem de consulta do Azure Digital Twins: cláusula JOIN.
Sintaxe
SELECT *
--FROM ...
Devoluções
O conjunto de propriedades que são retornadas da consulta.
Exemplo
A consulta a seguir retorna todos os gêmeos digitais na instância.
SELECT *
FROM DIGITALTWINS
SELECIONAR colunas com projeções
Você pode usar projeções na cláusula SELECT para escolher quais colunas uma consulta retornará. Você pode especificar coleções nomeadas de gêmeos e relacionamentos, ou propriedades de gêmeos e relacionamentos.
A projeção agora é suportada para propriedades primitivas e propriedades complexas.
Sintaxe
Para projetar uma coleção:
SELECT <twin-or-relationship-collection>
Para projetar um imóvel:
SELECT <twin-or-relationship-collection>.<property-name>
Devoluções
Uma coleção de gêmeos, propriedades ou relacionamentos especificados na projeção.
Se uma propriedade incluída na projeção não estiver presente para uma linha de dados específica, a propriedade também não estará presente no conjunto de resultados. Para obter um exemplo desse comportamento, consulte Exemplo de propriedade do projeto: Propriedade não presente para uma linha de dados.
Exemplos
Cenário de exemplo
Para os exemplos a seguir, considere um gráfico gêmeo que contenha os seguintes elementos de dados:
- Um gêmeo de fábrica chamado FactoryA
- Contém uma propriedade chamada
name
com um valor deFactoryA
- Contém uma propriedade chamada
- Um gêmeo 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
Aqui está um diagrama ilustrando esse cenário:
Exemplo de coleção de projetos
Abaixo está um exemplo de consulta que projeta uma coleção a partir deste gráfico. A consulta a seguir retorna todos os gêmeos digitais na instância, nomeando toda a coleção T
de gêmeos e projetando T
como a coleção a ser retornada.
SELECT T
FROM DIGITALTWINS T
Aqui está a carga JSON retornada 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"
}
Projeto com exemplo JOIN
A projeção é comumente usada para retornar uma coleção especificada em um JOIN
arquivo . A consulta a seguir usa projeção para retornar os dados de Consumidor, Fábrica e Relacionamento. Para obter mais informações sobre a JOIN
sintaxe usada no exemplo, consulte Referência de 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'
Aqui está a carga JSON retornada 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
Veja um exemplo que projeta uma propriedade. A consulta a seguir usa projeção para retornar a name
propriedade do gêmeo 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'
Aqui está a carga JSON retornada 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 também não estará presente no conjunto de resultados.
Considere, para este exemplo, um conjunto de gémeos que representam pessoas. Alguns dos gémeos têm idades associadas a eles, mas outros não.
Aqui está uma consulta que projeta as name
propriedades e age
:
SELECT name, age
FROM DIGITALTWINS
O resultado pode ser mais ou menos assim, com a age
propriedade faltando para alguns gêmeos no resultado onde os gêmeos não têm essa propriedade.
{
"value": [
{
"result": [
{
"name": "John",
"age": 27
},
{
"name": "Keanu"
}
]
}
],
"continuationToken": "null"
}
SELECIONAR CONTAGEM
Use esse método para contar o número de itens no conjunto de resultados e retornar esse número.
Sintaxe
SELECT COUNT()
Argumentos
Nenhum.
Devoluções
Um int
valor.
Exemplo
A consulta a seguir retorna a contagem de todos os gêmeos digitais na instância.
SELECT COUNT()
FROM DIGITALTWINS
A consulta a seguir retorna a contagem de todos os relacionamentos na instância.
SELECT COUNT()
FROM RELATIONSHIPS
SELECT TOP
Use esse método para retornar apenas alguns dos principais itens que atendem aos requisitos de consulta.
Sintaxe
SELECT TOP(<number-of-return-items>)
Argumentos
Um int
valor que especifica o número de itens principais a serem selecionados.
Devoluções
Uma coleção de gêmeos.
Exemplo
A consulta a seguir retorna apenas os cinco primeiros gêmeos digitais na instância.
SELECT TOP(5)
FROM DIGITALTWINS