Partilhar via


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_numberconté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'
  • 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)
  • ARRAY_CONTAINS() não é suportado em propriedades de relacionamentos.
    • Por exemplo, digamos Floor.Contains que é uma relação de andar para quarto e tem uma lift 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").
  • 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 para 2 usar a consulta SELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, 2) retorna False. Uma pesquisa por um valor na matriz de nível superior, como 1 usar a consulta SELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, 1), retorna True.
  • 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] onde Room1 e Room2 são objetos. Consultas como esta não são suportadas: SELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, Room2).

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 TemperatureReadingfilho .

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 uma JOIN é 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-')