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


Справочник по функциям языка запросов 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-')