Informations de référence sur le langage de requête Azure Digital Twins - Fonctions

Ce document contient des informations de référence sur les fonctions du langage de requête Azure Digital Twins.

ARRAY_CONTAINS

Fonction permettant de déterminer si une propriété de tableau d’un jumeau (prise en charge dans DTDL v3) contient une autre valeur spécifiée.

Syntaxe

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

Arguments

  • <array-to-check> : propriété de jumeau de type tableau à vérifier pour la valeur spécifiée
  • <contained-value>: chaîne, entier, double ou booléen représentant la valeur à vérifier à l’intérieur du tableau

Retours

Une valeur booléenne qui indique si le tableau contient la valeur spécifiée.

Exemple

La requête suivante retourne le nom de tous les jumeaux numériques qui ont une propriété de tableaufloor_number, et le tableau stocké dans cette propriété contient la valeur 2.

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

Limites

La fonction ARRAY_CONTAINS() présente les limitations suivantes :

  • L’indexation de tableaux n’est pas prise en charge.
    • Par exemple, array-name[index] = 'foo_bar'
  • Les sous-requêtes de la propriété ARRAY_CONTAINS() ne sont pas prises en charge.
    • Par exemple, SELECT T.name FROM DIGITALTWINS T WHERE ARRAY_CONTAINS (SELECT S.floor_number FROM DIGITALTWINS S, 4)
  • ARRAY_CONTAINS() n’est pas pris en charge sur les propriétés des relations.
    • Par exemple, supposons que Floor.Contains est une relation de Floor à Room et qu’il a une lift propriété avec la valeur ["operating", "under maintenance", "under construction"]. Les requêtes comme celles-ci ne sont pas prises en charge : SELECT Room FROM DIGITALTWINS Floor JOIN Room RELATED Floor.Contains WHERE Floor.$dtId = 'Floor-35' AND ARRAY_CONTAINS(Floor.Contains.lift, "operating").
  • ARRAY_CONTAINS() ne recherche pas dans les tableaux imbriqués.
    • Par exemple, supposons qu’un jumeau possède une propriété tags avec la valeur [1, [2,3], 3, 4]. Une recherche pour 2 utiliser la requête SELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, 2) retourne False. Une recherche d’une valeur dans le tableau de niveau supérieur, comme 1 l’utilisation de la requête SELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, 1), retourne True.
  • ARRAY_CONTAINS() n’est pas pris en charge si le tableau contient des objets.
    • Par exemple, supposons qu’un jumeau possède une propriété tagsavec la valeur [Room1, Room2]whereRoom1 et Room2sont des objets . Les requêtes comme celles-ci ne sont pas prises en charge : SELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, Room2).

CONTAINS

Fonction de chaîne permettant de déterminer si une propriété de type chaîne d’un jumeau contient une autre valeur de chaîne spécifiée.

Syntaxe

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

Arguments

  • <string-to-check> : propriété de jumeau de type chaîne à vérifier pour la valeur spécifiée.
  • <contained-string> : chaîne représentant la valeur à vérifier

Retours

Valeur booléenne indiquant si la première expression de chaîne contient la séquence de caractères définie dans la deuxième expression de chaîne.

Exemple

La requête suivante renvoie tous les jumeaux numériques dont les ID contiennent -route. La chaîne à vérifier est le $dtId de chaque jumeau dans la collection, et la chaîne contenue est -route.

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

ENDSWITH

Fonction de chaîne permettant de déterminer si une propriété de type chaîne d’un jumeau se termine dans une certaine chaîne différente.

Syntaxe

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

Arguments

  • <string-to-check> : propriété de jumeau de type chaîne dont vous souhaitez vérifier la fin
  • <ending-string> : chaîne représentant la fin à vérifier pour

Retours

Valeur booléenne indiquant si la première expression de chaîne se termine par la seconde.

Exemple

La requête suivante renvoie tous les jumeaux numériques dont les ID se terminent dans -small. La chaîne à vérifier est le $dtId de chaque jumeau dans la collection, et la chaîne de fin est -small.

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

IS_BOOL

Fonction de type case activée pour déterminer si une propriété a une valeur booléenne.

Cette fonction est souvent combinée avec d’autres prédicats si le programme qui traite les résultats de la requête nécessite une valeur booléenne et que vous souhaitez filtrer les cas où la propriété n’est pas une valeur booléenne.

Syntaxe

IS_BOOL(<property>)

Arguments

<property>, propriété à case activée s’il s’agit d’un booléen.

Retours

Une valeur booléenne indiquant si le type de la propriété spécifiée est un booléen.

Exemple

La requête suivante sélectionne les jumeaux numériques dotés d’une propriété HasTemperature booléenne.

SELECT *
FROM DIGITALTWINS T
WHERE IS_BOOL( HasTemperature )

La requête suivante s’appuie sur l’exemple ci-dessus pour sélectionner les jumeaux numériques qui ont une propriété booléenne HasTemperature et la valeur de cette propriété n’est pas false.

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

IS_DEFINED

Une fonction de vérification de type pour déterminer si une propriété est définie.

Syntaxe

IS_DEFINED(<property>)

Arguments

<property>, propriété pour déterminer si elle est définie.

Retours

Valeur booléenne indiquant si une valeur a été attribuée à la propriété.

Exemple

La requête suivante retourne tous les jumeaux numériques qui ont une propriété définie Location .

SELECT *
FROM DIGITALTWINS
WHERE IS_DEFINED(Location)

IS_NULL

Fonction de type case activée ing pour déterminer si la valeur d’une propriété est null.

Syntaxe

IS_NULL(<property>)

Arguments

<property>, propriété à case activée s’il s’agit de null.

Retours

Une valeur booléenne indiquant si le type de la propriété spécifiée est null.

Exemple

La requête suivante renvoie des jumeaux qui n’ont pas de valeur null pour la température. Pour plus d’informations sur l'NOT opérateur utilisé dans cette requête, consultez Informations de référence sur le langage de requête Azure Digital Twins : opérateurs.

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

IS_NUMBER

Une fonction de vérification de type pour déterminer si une propriété a une valeur numérique.

Cette fonction est souvent combinée à d’autres prédicats si le programme qui traite les résultats de la requête nécessite une valeur numérique et que vous souhaitez filtrer les cas où la propriété n’est pas un nombre.

Syntaxe

IS_NUMBER(<property>)

Arguments

<property>, propriété à case activée s’il s’agit d’un nombre.

Retours

Une valeur booléenne indiquant si le type de la propriété spécifiée est un nombre.

Exemple

La requête suivante sélectionne les jumeaux numériques qui ont une propriété numérique Capacity et sa valeur n’est pas égale à 0.

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

IS_OBJECT

Une fonction de vérification de type pour déterminer si la valeur d'une propriété est d'un type d'objet JSON.

Cette fonction est souvent combinée avec d’autres prédicats si le programme traitant les résultats de la requête nécessite un objet JSON et que vous souhaitez filtrer les cas où la valeur n’est pas un objet JSON.

Syntaxe

IS_OBJECT<property>)

Arguments

<property>, propriété à case activée s’il s’agit d’un type d’objet.

Retours

Une valeur booléenne indiquant si le type de la propriété spécifiée est un objet JSON.

Exemple

La requête suivante sélectionne tous les jumeaux numériques où il s’agit d’un objet appelé MapObject, et il n’a pas de propriété TemperatureReadingenfant .

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

IS_OF_MODEL

Une vérification du type et une fonction permettant de déterminer si un jumeau est d'un type de modèle particulier. Comprend les modèles qui héritent du modèle spécifié.

Syntaxe

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

Arguments

Obligatoire :

  • <model-ID>: ID de modèle à vérifier.

Facultatif :

  • <twin-collection>: spécifiez une collection de jumeaux à rechercher lorsqu’il y en a plusieurs (par exemple, lorsqu’un JOIN jumeau est utilisé).
  • exact: requiert une correspondance exacte. Si ce paramètre n’est pas défini, le jeu de résultats inclut des jumeaux avec des modèles qui héritent du modèle spécifié.

Retours

Valeur booléenne indiquant si le jumeau spécifié correspond au type de modèle spécifié.

Exemple

La requête suivante renvoie des jumeaux issus de la collection DT correspondant exactement au type de modèle dtmi:example:room;1.

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

IS_PRIMITIVE

Une fonction de vérification de type pour déterminer si la valeur d'une propriété est d'un type primitif (chaîne, booléen, numérique ou null).

Cette fonction est souvent combinée avec d’autres prédicats si le programme qui traite les résultats de la requête nécessite une valeur de type primitif et que vous souhaitez filtrer les cas où la propriété n’est pas primitive.

Syntaxe

IS_PRIMITIVE(<property>)

Arguments

<property>, propriété à case activée s’il s’agit d’un type primitif.

Retours

Une valeur booléenne indiquant si le type de la propriété spécifiée est l'un des types primitifs (chaîne, booléen, numérique ou null).

Exemple

La requête suivante renvoie la propriété area de la fabrique avec l’ID « ABC » uniquement si la propriété area est de type primitif. Pour plus d’informations sur la projection de certaines colonnes du résultat de la requête (par exemple, cette requête avec area ), consultez Informations de référence sur le langage de requête Azure Digital Twins : clause SELECT.

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

IS_STRING

Une fonction de vérification de type pour déterminer si une propriété a une valeur de type chaîne.

Cette fonction est souvent combinée avec d’autres prédicats si le programme qui traite les résultats de la requête nécessite une valeur de chaîne et que vous souhaitez filtrer les cas où la propriété n’est pas une chaîne.

Syntaxe

IS_STRING(<property>)

Arguments

<property>, propriété à case activée s’il s’agit d’une chaîne.

Retours

Valeur booléenne indiquant si l’expression spécifiée est du type chaîne.

Exemple

La requête suivante sélectionne les jumeaux numériques qui ont une propriété de propriété de chaîne Status et sa valeur n’est pas égale à Completed.

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

STARTSWITH

Fonction de chaîne permettant de déterminer si une propriété de type chaîne d’un jumeau commence par une certaine chaîne différente.

Syntaxe

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

Arguments

  • <string-to-check> : propriété de jumeau de type chaîne dont vous souhaitez vérifier le début
  • <beginning-string> : chaîne représentant le début à vérifier pour

Retours

Valeur booléenne indiquant si la première expression de chaîne commence par la seconde

Exemple

La requête suivante renvoie tous les jumeaux numériques dont les ID commencent par area1-. La chaîne à vérifier est le $dtId de chaque jumeau dans la collection, et la chaîne de début est area1-.

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