Referência de linguagem de consulta de Gêmeos Digitais do Azure: Funções
Este documento contém informações de referência sobre funções para a linguagem de consulta de Gêmeos Digitais do Azure.
ARRAY_CONTAINS
Uma função para determinar se uma propriedade de matriz de um gêmeo (com suporte no DTDL v3) contém outro valor especificado.
Sintaxe
ARRAY_CONTAINS(<array-to-check>,<contained-value>)
Argumentos
<array-to-check>
: uma propriedade de gêmeo do tipo matriz que você deseja verificar para o valor especificado<contained-value>
: uma cadeia de caracteres, inteiro, duplo ou booliano que representa o valor a ser verificado na matriz
Retorna
Um valor booliano 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 de matriz floor_number
e a matriz armazenada nessa propriedade 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() possui as seguintes limitações:
- Não há suporte para indexação de matriz.
- Por exemplo,
array-name[index] = 'foo_bar'
- Por exemplo,
- Não há suporte para subconsultas na 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 que
Floor.Contains
seja uma relação de Floor para Room e tenha uma propriedadelift
com um valor de["operating", "under maintenance", "under construction"]
. Não há suporte para consultas como esta: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 que
- ARRAY_CONTAINS() não pesquisa dentro de matrizes aninhadas.
- Por exemplo, digamos que um gêmeo tenha uma propriedade
tags
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 propriedade
- ARRAY_CONTAINS() não é suportado se a matriz contiver objetos.
- Por exemplo, digamos que um gêmeo tenha uma propriedade
tags
com um valor de[Room1, Room2]
ondeRoom1
eRoom2
são objetos. Não há suporte para consultas como esta:SELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, Room2)
.
- Por exemplo, digamos que um gêmeo tenha uma propriedade
CONTAINS
Uma função de cadeia de caracteres para determinar se uma propriedade de cadeia de caracteres de um gêmeo contém outro valor de cadeia de caracteres especificado.
Sintaxe
CONTAINS(<string-to-check>,<contained-string>)
Argumentos
<string-to-check>
: uma propriedade de gêmeo do tipo cadeia de caracteres que você deseja verificar para o valor especificado<contained-string>
: uma cadeia de caracteres que representa o valor a ser verificado
Retorna
Um valor booliano indicando 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 cujas IDs contêm -route
. A cadeia de caracteres a ser verificada é a $dtId
de cada gêmeo na coleção e a cadeia de caracteres contida é -route
.
SELECT *
FROM DIGITALTWINS T
WHERE CONTAINS(T.$dtId, '-route')
ENDSWITH
Uma função de cadeia de caracteres para determinar se uma propriedade de cadeia de caracteres de um gêmeo termina em uma outra cadeia de caracteres determinada.
Sintaxe
ENDSWITH(<string-to-check>,<ending-string>)
Argumentos
<string-to-check>
: uma propriedade de gêmeo do tipo cadeia de caracteres cujo final você deseja verificar<ending-string>
uma cadeia de caracteres representando o final para verificar
Retorna
Um valor booliano 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 cadeia de caracteres a ser verificada é a $dtId
de cada gêmeo na coleção e a cadeia de caracteres 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 exigir um valor booleano e você quiser filtrar os casos em que a propriedade não é booleana.
Sintaxe
IS_BOOL(<property>)
Argumentos
<property>
, uma propriedade para verificar se é um booleano.
Retorna
Um valor booliano que indica se o tipo da propriedade especificada é um booliano.
Exemplo
A consulta a seguir seleciona o gêmeos digital que tem uma propriedade HasTemperature
booliana.
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 ela está definida.
Retorna
Um valor booliano que indica se um valor foi atribuído à propriedade.
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 é nula.
Retorna
Um valor booliano 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 temperatura. Para obter mais informações sobre o NOT
operador usado nesta consulta, consulte referência de linguagem de consulta do Azure digital gêmeos: 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.
Retorna
Um valor booliano 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 exigir um objeto JSON e você quiser filtrar os 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.
Retorna
Um valor booliano que indica se o tipo da propriedade especificada é um objeto JSON.
Exemplo
A consulta a seguir seleciona todos os gêmeos digitais em que esse é 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ário:
<model-ID>
: a ID do modelo a ser verificada.
Opcional:
<twin-collection>
: especifique uma coleção dupla para pesquisar quando houver mais de uma (como quando umaJOIN
é usada).exact
: exige uma combinação exata. Se esse parâmetro não estiver definido, o conjunto de resultados incluirá gêmeos com modelos que herdam do modelo especificado.
Retorna
Um valor booliano 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 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 (cadeia de caracteres, booliano, 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 os casos em que a propriedade não é primitiva.
Sintaxe
IS_PRIMITIVE(<property>)
Argumentos
<property>
, uma propriedade para verificar se é de um tipo primitivo.
Retorna
Um valor booliano que indica se o tipo da propriedade especificada é um dos tipos primitivos (cadeia de caracteres, booliano, numérico ou null
).
Exemplo
A consulta a seguir retornará a propriedade de Factory com area
a ID de 'ABC', somente se a propriedade area
for um tipo primitivo. Para obter mais informações sobre como projetar determinadas colunas no resultado da consulta (como essa consulta faz com ), consulte Gêmeos Digitais do Azure de linguagem de area
consulta: 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 exigir um valor de cadeia de caracteres e você quiser filtrar os 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.
Retorna
Um valor booliano 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 Status
e seu valor não é igual a Completed
.
SELECT *
FROM DIGITIALTWINS
WHERE IS_STRING( Status ) AND Status != 'Completed'
STARTSWITH
Uma função de cadeia de caracteres para determinar se uma propriedade de cadeia de caracteres de um gêmeo começa com uma outra cadeia de caracteres determinada.
Sintaxe
STARTSWITH(<string-to-check>,<beginning-string>)
Argumentos
<string-to-check>
: uma propriedade de gêmeo do tipo cadeia de caracteres cujo início você deseja verificar<beginning-string>
: uma cadeia de caracteres representando o começo para verificar
Retorna
Um valor booliano 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 em area1-
. A cadeia de caracteres a ser verificada é a $dtId
de cada gêmeo na coleção e a cadeia de caracteres inicial é area1-
.
SELECT *
FROM DIGITALTWINS T
WHERE STARTSWITH(T.$dtId, 'area1-')