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'
- Par exemple,
- 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)
- Par exemple,
- 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 unelift
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")
.
- Par exemple, supposons que
- 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 pour2
utiliser la requêteSELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, 2)
retourneFalse
. Une recherche d’une valeur dans le tableau de niveau supérieur, comme1
l’utilisation de la requêteSELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, 1)
, retourneTrue
.
- Par exemple, supposons qu’un jumeau possède une propriété
- 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é
tags
avec la valeur[Room1, Room2]
whereRoom1
etRoom2
sont des objets . Les requêtes comme celles-ci ne sont pas prises en charge :SELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, Room2)
.
- Par exemple, supposons qu’un jumeau possède une propriété
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é TemperatureReading
enfant .
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’unJOIN
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-')