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'
  • 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)
  • 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 propriedade lift 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").
  • 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 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 tenha uma propriedade tags com um valor de [Room1, Room2] onde Room1 e Room2 são objetos. Não há suporte para consultas como esta: SELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, Room2).

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