Поделиться через


Справочник по функциям языка запросов Azure Digital Twins

Этот документ содержит справочные сведения о функциях для языка запросов Azure Digital Twins.

ARRAY_CONTAINS

Функция, определяемая, содержит ли свойство массива двойника (поддерживаемое в DTDL версии 3) другое указанное значение.

Синтаксис

ARRAY_CONTAINS(<array-to-check>,<contained-value>)

Аргументы

  • <array-to-check>: свойство двойника типа массива, которое требуется проверить для указанного значения.
  • <contained-value>: строка, целое число, двойное или логическое значение, представляющее значение для проверки внутри массива.

Возвраты

Логическое значение, указывающее, содержит ли массив указанное значение.

Пример

Следующий запрос возвращает имя всех цифровых двойников, имеющих свойство floor_numberмассива, а массив, хранящийся в этом свойстве, содержит значение 2.

SELECT T.name 
FROM DIGITALTWINS T 
WHERE ARRAY_CONTAINS (T.floor_number, 2)

Ограничения

Функция ARRAY_CONTAINS() имеет следующие ограничения:

  • Индексирование массивов не поддерживается.
    • Например: array-name[index] = 'foo_bar'
  • Вложенные запросы в свойстве ARRAY_CONTAINS() не поддерживаются.
    • Например: SELECT T.name FROM DIGITALTWINS T WHERE ARRAY_CONTAINS (SELECT S.floor_number FROM DIGITALTWINS S, 4)
  • ARRAY_CONTAINS() не поддерживается для свойств связей.
    • Например, предположим Floor.Contains , что связь от Пола к комнате и имеет lift свойство со значением ["operating", "under maintenance", "under construction"]. Запросы, такие как это, не поддерживаются: SELECT Room FROM DIGITALTWINS Floor JOIN Room RELATED Floor.Contains WHERE Floor.$dtId = 'Floor-35' AND ARRAY_CONTAINS(Floor.Contains.lift, "operating")
  • ARRAY_CONTAINS() не выполняет поиск внутри вложенных массивов.
    • Например, например, двойник имеет tags свойство со значением [1, [2,3], 3, 4]. 2 Поиск по запросу SELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, 2) возвращаетсяFalse. Поиск значения в массиве верхнего уровня, например 1 с помощью запроса SELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, 1), возвращается True.
  • ARRAY_CONTAINS() не поддерживается, если массив содержит объекты.
    • Например, например, двойник имеет tags свойство со значением [Room1, Room2] того, где Room1 и Room2 являются объектами. Запросы, такие как это, не поддерживаются: SELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, Room2)

CONTAINS

Строковая функция, которая определяет, содержит ли строковое свойство двойника другое указанное строковое значение.

Синтаксис

CONTAINS(<string-to-check>,<contained-string>)

Аргументы

  • <string-to-check>: свойство двойника типа строки, которое необходимо проверить для указанного значения.
  • <contained-string>: строка, представляющая значение для проверки

Возвраты

Логическое значение, указывающее, содержит ли первое строковое выражение последовательность символов, определенных во втором строковом выражении.

Пример

Следующий запрос возвращает все цифровые двойники, идентификаторы которых содержатся -route. Строка для проверки является $dtId двойником в коллекции, и содержится -routeстрока.

SELECT *
FROM DIGITALTWINS T
WHERE CONTAINS(T.$dtId, '-route')

ENDSWITH

Строковая функция, которая определяет, заканчивается ли строковое свойство двойника в определенной другой строке.

Синтаксис

ENDSWITH(<string-to-check>,<ending-string>)

Аргументы

  • <string-to-check>: свойство двойника типа строки, которое требуется проверить окончание
  • <ending-string>: строка, представляющая окончание для проверки

Возвраты

Логическое значение, указывающее, начинается ли первое строковое выражение вторым.

Пример

Приведенный ниже запрос возвращает все цифровые двойники, идентификаторы которых заканчиваются на -small. Строка для проверки — это $dtId каждый двойник в коллекции, а конечная строка — -small.

SELECT *
FROM DIGITALTWINS T
WHERE ENDSWITH(T.$dtId, '-small')

IS_BOOL

Функция проверки типа для определения того, имеет ли свойство логическое значение.

Эта функция часто сочетается с другими предикатами, если программе, обрабатывающей результаты запроса, требуется логическое значение, и вы хотите отфильтровать случаи, когда свойство не является логическим.

Синтаксис

IS_BOOL(<property>)

Аргументы

<property>, свойство для проверки того, является ли это логическим.

Возвраты

Логическое значение, указывающее, является ли тип указанного свойства логическим.

Пример

Следующий запрос выбирает цифровых двойников с логическим свойством HasTemperature.

SELECT *
FROM DIGITALTWINS T
WHERE IS_BOOL( HasTemperature )

Следующий запрос основан на приведенном выше примере, чтобы выбрать цифровые двойники, имеющие логическое HasTemperature свойство, и значение этого свойства не falseявляется.

SELECT *
FROM DIGITALTWINS T
WHERE IS_BOOL( HasTemperature ) AND HasTemperature != false

IS_DEFINED

Функция проверки типа, определяемая, определена ли свойство.

Синтаксис

IS_DEFINED(<property>)

Аргументы

<property>, свойство, определяющее, определена ли она.

Возвраты

Логическое значение, указывающее, назначено ли свойству значение.

Пример

Следующий запрос возвращает все цифровые двойники, имеющие определенное Location свойство.

SELECT *
FROM DIGITALTWINS
WHERE IS_DEFINED(Location)

IS_NULL

Функция проверки типа для определения того, является nullли значение свойства.

Синтаксис

IS_NULL(<property>)

Аргументы

<property>, свойство, которое проверяет, имеет ли значение NULL.

Возвраты

Логическое значение, указывающее, является nullли тип указанного свойства.

Пример

Следующий запрос возвращает двойников, значение температуры которых не является NULL. Дополнительные сведения об операторе NOT, используемом в этом запросе, см. в статье Справочник по языку запросов Azure Digital Twins — операторы.

SELECT *
FROM DIGITALTWINS T
WHERE NOT IS_NULL(T.Temperature)

IS_NUMBER

Функция проверки типа для определения того, имеет ли свойство числовое значение.

Эта функция часто сочетается с другими предикатами, если программе, обрабатывающей результаты запроса, требуется числовое значение, и вы хотите отфильтровать случаи, когда свойство не является числом.

Синтаксис

IS_NUMBER(<property>)

Аргументы

<property>, свойство для проверки того, является ли это числом.

Возвраты

Логическое значение, указывающее, является ли тип указанного свойства числом.

Пример

Следующий запрос выбирает цифровые двойники, имеющие числовое Capacity свойство, и его значение не равно 0.

SELECT * 
FROM DIGITALTWINS 
WHERE IS_NUMBER( Capacity ) AND Capacity != 0

IS_OBJECT

Функция проверки типа для определения того, является ли значение свойства типом объекта JSON.

Эта функция часто сочетается с другими предикатами, если программе, обрабатывающей результаты запроса, требуется объект JSON, и вы хотите отфильтровать случаи, когда значение не является объектом JSON.

Синтаксис

IS_OBJECT<property>)

Аргументы

<property>, свойство для проверки того, является ли он типом объекта.

Возвраты

Логическое значение, указывающее, является ли тип указанного свойства объектом JSON.

Пример

Следующий запрос выбирает все цифровые двойники, где этот объект вызывается MapObject, и у него нет дочернего свойства TemperatureReading.

SELECT * 
FROM DIGITALTWINS 
WHERE IS_OBJECT( MapObject ) AND NOT IS_DEFINED ( MapObject.TemperatureReading )

IS_OF_MODEL

Проверка типов и функция для определения того, является ли двойник определенным типом модели. Включает в себя модели, которые наследуют от указанной модели.

Синтаксис

IS_OF_MODEL(<twin-collection>,'<model-ID>', exact)

Аргументы

Нужно:

  • <model-ID>: идентификатор модели для проверки.

Необязательно:

  • <twin-collection>: укажите коллекцию двойников для поиска при наличии нескольких (например, когда используется).JOIN
  • exact: требуется точное совпадение. Если этот параметр не задан, результирующий набор включает двойники с моделями, наследуемыми от указанной модели.

Возвраты

Логическое значение, определяющее, соответствует ли указанный двойник заданному типу модели.

Пример

Следующий запрос возвращает двойников из коллекции DT, которые соответствуют типу модели dtmi:example:room;1.

SELECT ROOM FROM DIGITALTWINS DT WHERE IS_OF_MODEL(DT, 'dtmi:example:room;1', exact)

IS_PRIMITIVE

Функция проверки типа для определения того, является ли значение свойства примитивным типом (строка, логический, числовый или null).

Эта функция часто сочетается с другими предикатами, если программе, обрабатывающей результаты запроса, требуется примитивное типизированное значение, и вы хотите отфильтровать случаи, когда свойство не является примитивным.

Синтаксис

IS_PRIMITIVE(<property>)

Аргументы

<property>, свойство для проверки того, является ли он примитивным типом.

Возвраты

Логическое значение, указывающее, является ли тип указанного свойства одним из примитивных типов (string, boolean, numeric или null).

Пример

Следующий запрос возвращает свойство фабрики area с идентификатором ABC, только если свойство area относится к примитивному типу. Дополнительные сведения о проецировании определенных столбцов в результат запроса (подобно тому, как этот запрос возвращает свойство area) см. в статье Справочник по языку запросов Azure Digital Twins — предложение SELECT.

SELECT Factory.area
FROM DIGITALTWINS Factory
WHERE Factory.$dtId = 'ABC'
AND IS_PRIMITIVE(Factory.area)

IS_STRING

Функция проверки типа для определения того, имеет ли свойство строковое значение.

Эта функция часто сочетается с другими предикатами, если программе, обрабатывающей результаты запроса, требуется строковое значение, и вы хотите отфильтровать случаи, когда свойство не является строкой.

Синтаксис

IS_STRING(<property>)

Аргументы

<property>, свойство для проверки того, является ли это строкой.

Возвраты

Логическое значение, указывающее, относится ли указанное выражение к строковому типу.

Пример

Следующий запрос выбирает цифровые двойники, имеющие строковое свойство свойства Status , и его значение не равно Completed.

SELECT * 
FROM DIGITIALTWINS 
WHERE IS_STRING( Status ) AND Status != 'Completed'

STARTSWITH

Строковая функция, которая определяет, начинается ли строковое свойство двойника с определенной другой строкой.

Синтаксис

STARTSWITH(<string-to-check>,<beginning-string>)

Аргументы

  • <string-to-check>: свойство двойника типа строки, которое требуется проверить начало
  • <beginning-string>: строка, представляющая начало для проверки

Возвраты

Значение логического типа, указывающее, начинается ли первое строковое выражение вторым.

Пример

Приведенный ниже запрос возвращает все цифровые двойники, идентификаторы которых начинается на area1-. Строка для проверки — это $dtId каждый двойник в коллекции, а начальная строка — area1-.

SELECT *
FROM DIGITALTWINS T
WHERE STARTSWITH(T.$dtId, 'area1-')