Referência de linguagem de consulta do Azure Digital Twins: Funções
Este documento contém informações de referência sobre funções para a linguagem de consulta dos Gêmeos Digitais do Azure.
ARRAY_CONTAINS
Uma função para determinar se uma propriedade de matriz de um gêmeo (suportada na DTDL v3) contém outro valor especificado.
Sintaxe
ARRAY_CONTAINS(<array-to-check>,<contained-value>)
Argumentos
<array-to-check>
: Uma propriedade gêmea do tipo matriz que você deseja verificar o valor especificado<contained-value>
: Uma cadeia de caracteres, inteiro, duplo ou booleano que representa o valor a ser verificado dentro da matriz
Devoluções
Um valor booleano que indica se a matriz contém o valor especificado.
Exemplo
A consulta a seguir retorna o nome de todos os gêmeos digitais que têm uma propriedade array , e a matriz armazenada nessa propriedade floor_number
contém um valor de 2
.
SELECT T.name
FROM DIGITALTWINS T
WHERE ARRAY_CONTAINS (T.floor_number, 2)
Limitações
A função ARRAY_CONTAINS() tem as seguintes limitações:
- Não há suporte para indexação de matrizes.
- Por exemplo,
array-name[index] = 'foo_bar'
- Por exemplo,
- Não há suporte para subconsultas dentro da propriedade ARRAY_CONTAINS().
- Por exemplo,
SELECT T.name FROM DIGITALTWINS T WHERE ARRAY_CONTAINS (SELECT S.floor_number FROM DIGITALTWINS S, 4)
- Por exemplo,
- ARRAY_CONTAINS() não é suportado em propriedades de relacionamentos.
- Por exemplo, digamos
Floor.Contains
que é uma relação de andar para quarto e tem umalift
propriedade com um valor de["operating", "under maintenance", "under construction"]
. Consultas como esta não são suportadas:SELECT Room FROM DIGITALTWINS Floor JOIN Room RELATED Floor.Contains WHERE Floor.$dtId = 'Floor-35' AND ARRAY_CONTAINS(Floor.Contains.lift, "operating")
.
- Por exemplo, digamos
- ARRAY_CONTAINS() não pesquisa dentro de matrizes aninhadas.
- Por exemplo, digamos que um gêmeo tenha uma
tags
propriedade com um valor de[1, [2,3], 3, 4]
. Uma pesquisa para2
usar a consultaSELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, 2)
retornaFalse
. Uma pesquisa por um valor na matriz de nível superior, como1
usar a consultaSELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, 1)
, retornaTrue
.
- Por exemplo, digamos que um gêmeo tenha uma
- ARRAY_CONTAINS() não é suportado se a matriz contiver objetos.
- Por exemplo, digamos que um gêmeo tem uma
tags
propriedade com um valor de[Room1, Room2]
ondeRoom1
eRoom2
são objetos. Consultas como esta não são suportadas:SELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, Room2)
.
- Por exemplo, digamos que um gêmeo tem uma
CONTAINS
Uma função string para determinar se uma propriedade string de um gêmeo contém outro valor de string especificado.
Sintaxe
CONTAINS(<string-to-check>,<contained-string>)
Argumentos
<string-to-check>
: Uma propriedade gêmea do tipo cadeia de caracteres que você deseja verificar o valor especificado<contained-string>
: Uma cadeia de caracteres que representa o valor a ser verificado
Devoluções
Um valor booleano que indica se a primeira expressão de cadeia de caracteres contém a sequência de caracteres definida na segunda expressão de cadeia de caracteres.
Exemplo
A consulta a seguir retorna todos os gêmeos digitais cujos IDs contêm -route
. A string a ser verificada é a de cada gêmeo na coleção, e a $dtId
string contida é -route
.
SELECT *
FROM DIGITALTWINS T
WHERE CONTAINS(T.$dtId, '-route')
ENDSWITH
Uma função string para determinar se uma propriedade string de um twin termina em uma determinada outra string.
Sintaxe
ENDSWITH(<string-to-check>,<ending-string>)
Argumentos
<string-to-check>
: Uma propriedade gêmea do tipo cadeia de caracteres que você deseja verificar o final de<ending-string>
: Uma cadeia de caracteres que representa o final a ser verificado
Devoluções
Um valor booleano que indica se a primeira expressão de cadeia de caracteres termina com a segunda.
Exemplo
A consulta a seguir retorna todos os gêmeos digitais cujas IDs terminam em -small
. A string a ser verificada é a de cada gêmeo na coleção, e a $dtId
string final é -small
.
SELECT *
FROM DIGITALTWINS T
WHERE ENDSWITH(T.$dtId, '-small')
IS_BOOL
Uma função de verificação de tipo para determinar se uma propriedade tem um valor booleano.
Essa função geralmente é combinada com outros predicados se o programa que processa os resultados da consulta requer um valor booleano e você deseja filtrar os casos em que a propriedade não é booleana.
Sintaxe
IS_BOOL(<property>)
Argumentos
<property>
, uma propriedade para verificar se é um booleano.
Devoluções
Um valor booleano que indica se o tipo da propriedade especificada é booleano.
Exemplo
A consulta a seguir seleciona os gêmeos digitais que têm uma propriedade booleana HasTemperature
.
SELECT *
FROM DIGITALTWINS T
WHERE IS_BOOL( HasTemperature )
A consulta a seguir se baseia no exemplo acima para selecionar os gêmeos digitais que têm uma propriedade booleana HasTemperature
, e o valor dessa propriedade não false
é .
SELECT *
FROM DIGITALTWINS T
WHERE IS_BOOL( HasTemperature ) AND HasTemperature != false
IS_DEFINED
Uma função de verificação de tipo para determinar se uma propriedade está definida.
Sintaxe
IS_DEFINED(<property>)
Argumentos
<property>
, uma propriedade para determinar se está definida.
Devoluções
Um valor booleano que indica se a propriedade recebeu um valor.
Exemplo
A consulta a seguir retorna todos os gêmeos digitais que têm uma propriedade definida Location
.
SELECT *
FROM DIGITALTWINS
WHERE IS_DEFINED(Location)
IS_NULL
Uma função de verificação de tipo para determinar se o valor de uma propriedade é null
.
Sintaxe
IS_NULL(<property>)
Argumentos
<property>
, uma propriedade para verificar se é null.
Devoluções
Um valor booleano que indica se o tipo da propriedade especificada é null
.
Exemplo
A consulta a seguir retorna gêmeos que não têm um valor nulo para Temperature. Para obter mais informações sobre o NOT
operador usado nesta consulta, consulte Referência de linguagem de consulta do Azure Digital Twins: Operadores.
SELECT *
FROM DIGITALTWINS T
WHERE NOT IS_NULL(T.Temperature)
IS_NUMBER
Uma função de verificação de tipo para determinar se uma propriedade tem um valor numérico.
Essa função geralmente é combinada com outros predicados se o programa que processa os resultados da consulta exigir um valor numérico e você quiser filtrar os casos em que a propriedade não é um número.
Sintaxe
IS_NUMBER(<property>)
Argumentos
<property>
, uma propriedade para verificar se é um número.
Devoluções
Um valor booleano que indica se o tipo da propriedade especificada é um número.
Exemplo
A consulta a seguir seleciona os gêmeos digitais que têm uma propriedade numérica Capacity
e seu valor não é igual a 0.
SELECT *
FROM DIGITALTWINS
WHERE IS_NUMBER( Capacity ) AND Capacity != 0
IS_OBJECT
Uma função de verificação de tipo para determinar se o valor de uma propriedade é de um tipo de objeto JSON.
Essa função geralmente é combinada com outros predicados se o programa que processa os resultados da consulta requer um objeto JSON e você deseja filtrar casos em que o valor não é um objeto JSON.
Sintaxe
IS_OBJECT<property>)
Argumentos
<property>
, uma propriedade para verificar se é de um tipo de objeto.
Devoluções
Um valor booleano que indica se o tipo da propriedade especificada é um objeto JSON.
Exemplo
A consulta a seguir seleciona todos os gêmeos digitais em que este é um objeto chamado MapObject
, e não tem uma propriedade TemperatureReading
filho .
SELECT *
FROM DIGITALTWINS
WHERE IS_OBJECT( MapObject ) AND NOT IS_DEFINED ( MapObject.TemperatureReading )
IS_OF_MODEL
Uma verificação de tipo e função para determinar se um gêmeo é de um tipo de modelo específico. Inclui modelos que herdam do modelo especificado.
Sintaxe
IS_OF_MODEL(<twin-collection>,'<model-ID>', exact)
Argumentos
Necessários:
<model-ID>
: O ID do modelo a ser verificado.
Opcional:
<twin-collection>
: Especifique uma coleção dupla para pesquisar quando houver mais de uma (como quando umaJOIN
é usada).exact
: Requer uma correspondência exata. Se esse parâmetro não estiver definido, o conjunto de resultados incluirá gêmeos com modelos que herdam do modelo especificado.
Devoluções
Um valor booleano que indica se o gêmeo especificado corresponde ao tipo de modelo especificado.
Exemplo
A consulta a seguir retorna gêmeos da coleção DT que são exatamente do tipo de modelo dtmi:example:room;1
.
SELECT ROOM FROM DIGITALTWINS DT WHERE IS_OF_MODEL(DT, 'dtmi:example:room;1', exact)
IS_PRIMITIVE
Uma função de verificação de tipo para determinar se o valor de uma propriedade é de um tipo primitivo (string, booleano, numérico ou null
).
Essa função geralmente é combinada com outros predicados se o programa que processa os resultados da consulta exigir um valor de tipo primitivo e você quiser filtrar casos em que a propriedade não é primitiva.
Sintaxe
IS_PRIMITIVE(<property>)
Argumentos
<property>
, uma propriedade para verificar se é de um tipo primitivo.
Devoluções
Um valor booleano que indica se o tipo da propriedade especificada é um dos tipos primitivos (string, booleano, numérico ou null
).
Exemplo
A consulta a seguir retorna a propriedade da fábrica com a ID de 'ABC', somente se a area
area
propriedade for um tipo primitivo. Para obter mais informações sobre como projetar determinadas colunas no resultado da consulta (como esta consulta faz com area
), consulte Referência de linguagem de consulta do Azure Digital Twins: cláusula SELECT.
SELECT Factory.area
FROM DIGITALTWINS Factory
WHERE Factory.$dtId = 'ABC'
AND IS_PRIMITIVE(Factory.area)
IS_STRING
Uma função de verificação de tipo para determinar se uma propriedade tem um valor de cadeia de caracteres.
Essa função geralmente é combinada com outros predicados se o programa que processa os resultados da consulta requer um valor de cadeia de caracteres e você deseja filtrar casos em que a propriedade não é uma cadeia de caracteres.
Sintaxe
IS_STRING(<property>)
Argumentos
<property>
, uma propriedade para verificar se é uma cadeia de caracteres.
Devoluções
Um valor booleano que indica se o tipo da expressão especificada é uma cadeia de caracteres.
Exemplo
A consulta a seguir seleciona os gêmeos digitais que têm uma propriedade string property Status
e seu valor não é igual a Completed
.
SELECT *
FROM DIGITIALTWINS
WHERE IS_STRING( Status ) AND Status != 'Completed'
STARTSWITH
Uma função string para determinar se uma propriedade string de um gêmeo começa com uma determinada outra string.
Sintaxe
STARTSWITH(<string-to-check>,<beginning-string>)
Argumentos
<string-to-check>
: Uma propriedade gêmea do tipo cadeia de caracteres que você deseja verificar o início de<beginning-string>
: Uma cadeia de caracteres que representa o início para verificar
Devoluções
Um valor booleano que indica se a primeira expressão de cadeia de caracteres começa com a segunda.
Exemplo
A consulta a seguir retorna todos os gêmeos digitais cujas IDs começam com area1-
. A string a ser verificada é a de cada gêmeo na coleção, e a $dtId
string inicial é area1-
.
SELECT *
FROM DIGITALTWINS T
WHERE STARTSWITH(T.$dtId, 'area1-')