Informazioni di riferimento sul linguaggio di query di Gemelli digitali di Azure: Funzioni
Questo documento contiene informazioni di riferimento sulle funzioni per il linguaggio di query di Gemelli digitali di Azure.
ARRAY_CONTAINS
Funzione per determinare se una proprietà di matrice di un gemello (supportata in DTDL v3) contiene un altro valore specificato.
Sintassi
ARRAY_CONTAINS(<array-to-check>,<contained-value>)
Argomenti
<array-to-check>
: proprietà gemella di tipo matrice che si vuole verificare per il valore specificato<contained-value>
: stringa, integer, double o booleano che rappresenta il valore da controllare all'interno della matrice
Resi
Valore booleano che indica se la matrice contiene il valore specificato.
Esempio
La query seguente restituisce il nome di tutti i gemelli digitali che hanno una proprietà floor_number
di matrice e la matrice archiviata in questa proprietà contiene il valore .2
SELECT T.name
FROM DIGITALTWINS T
WHERE ARRAY_CONTAINS (T.floor_number, 2)
Limiti
La funzione ARRAY_CONTAINS() presenta le limitazioni seguenti:
- L'indicizzazione di matrici non è supportata.
- Ad esempio, usare
array-name[index] = 'foo_bar'
- Ad esempio, usare
- Le sottoquery all'interno della proprietà ARRAY_CONTAINS() non sono supportate.
- Ad esempio, usare
SELECT T.name FROM DIGITALTWINS T WHERE ARRAY_CONTAINS (SELECT S.floor_number FROM DIGITALTWINS S, 4)
- Ad esempio, usare
- ARRAY_CONTAINS() non è supportato nelle proprietà delle relazioni.
- Si supponga
Floor.Contains
, ad esempio, che sia una relazione da Floor a Room e che abbia unalift
proprietà con un valore .["operating", "under maintenance", "under construction"]
Le query come questa non sono supportate:SELECT Room FROM DIGITALTWINS Floor JOIN Room RELATED Floor.Contains WHERE Floor.$dtId = 'Floor-35' AND ARRAY_CONTAINS(Floor.Contains.lift, "operating")
.
- Si supponga
- ARRAY_CONTAINS() non esegue la ricerca all'interno di matrici annidate.
- Si supponga, ad esempio, che un gemello abbia una
tags
proprietà con un valore .[1, [2,3], 3, 4]
Una ricerca per2
l'uso della querySELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, 2)
restituisceFalse
. Una ricerca di un valore nella matrice di livello superiore, ad esempio1
usando la querySELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, 1)
, restituisceTrue
.
- Si supponga, ad esempio, che un gemello abbia una
- ARRAY_CONTAINS() non è supportato se la matrice contiene oggetti.
- Si supponga, ad esempio, che un gemello abbia una
tags
proprietà con un valore dove[Room1, Room2]
Room1
eRoom2
sono oggetti . Le query come questa non sono supportate:SELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, Room2)
.
- Si supponga, ad esempio, che un gemello abbia una
CONTAINS
Funzione stringa per determinare se una proprietà stringa di un gemello contiene un altro valore stringa specificato.
Sintassi
CONTAINS(<string-to-check>,<contained-string>)
Argomenti
<string-to-check>
: proprietà gemella di tipo stringa che si vuole verificare per il valore specificato<contained-string>
: stringa che rappresenta il valore da verificare
Resi
Valore booleano che indica se la prima espressione stringa contiene la sequenza di caratteri definita nella seconda espressione stringa.
Esempio
La query seguente restituisce tutti i gemelli digitali i cui ID contengono -route
. La stringa da controllare è l'oggetto $dtId
di ogni gemello nell'insieme e la stringa contenuta è -route
.
SELECT *
FROM DIGITALTWINS T
WHERE CONTAINS(T.$dtId, '-route')
ENDSWITH
Funzione stringa per determinare se una proprietà stringa di un gemello termina in una determinata stringa.
Sintassi
ENDSWITH(<string-to-check>,<ending-string>)
Argomenti
<string-to-check>
: proprietà del gemello di tipo stringa che si desidera controllare la fine di<ending-string>
: stringa che rappresenta l'estremità finale da verificare
Resi
Valore booleano che indica se la prima espressione stringa termina con la seconda.
Esempio
La query seguente restituisce tutti i gemelli digitali i cui ID terminano in -small
. La stringa da controllare è l'oggetto $dtId
di ogni gemello nella raccolta e la stringa finale è -small
.
SELECT *
FROM DIGITALTWINS T
WHERE ENDSWITH(T.$dtId, '-small')
IS_BOOL
Funzione di controllo dei tipi per determinare se una proprietà ha un valore booleano.
Questa funzione viene spesso combinata con altri predicati se il programma che elabora i risultati della query richiede un valore booleano e si vogliono filtrare i casi in cui la proprietà non è un valore booleano.
Sintassi
IS_BOOL(<property>)
Argomenti
<property>
, una proprietà per verificare se si tratta di un valore booleano.
Resi
Valore booleano che indica se il tipo della proprietà specificata è un valore booleano.
Esempio
Nella query seguente vengono selezionati i gemelli digitali con una proprietà booleana HasTemperature
.
SELECT *
FROM DIGITALTWINS T
WHERE IS_BOOL( HasTemperature )
La query seguente si basa sull'esempio precedente per selezionare i gemelli digitali con una proprietà booleana HasTemperature
e il valore di tale proprietà non false
è .
SELECT *
FROM DIGITALTWINS T
WHERE IS_BOOL( HasTemperature ) AND HasTemperature != false
IS_DEFINED
Funzione di controllo dei tipi per determinare se è definita una proprietà.
Sintassi
IS_DEFINED(<property>)
Argomenti
<property>
, una proprietà per determinare se è definita.
Resi
Valore booleano che indica se alla proprietà è stato assegnato un valore.
Esempio
La query seguente restituisce tutti i gemelli digitali che dispongono di una proprietà definita Location
.
SELECT *
FROM DIGITALTWINS
WHERE IS_DEFINED(Location)
IS_NULL
Funzione di controllo dei tipi per determinare se il valore di una proprietà è null
.
Sintassi
IS_NULL(<property>)
Argomenti
<property>
, una proprietà per verificare se è Null.
Resi
Valore booleano che indica se il tipo della proprietà specificata è null
.
Esempio
La query seguente restituisce gemelli che non hanno un valore Null per Temperature. Per altre informazioni sull'operatore NOT
usato in questa query, vedere Informazioni di riferimento sul linguaggio di query di Gemelli digitali di Azure: Operatori.
SELECT *
FROM DIGITALTWINS T
WHERE NOT IS_NULL(T.Temperature)
IS_NUMBER
Funzione di controllo dei tipi per determinare se una proprietà ha un valore numerico.
Questa funzione viene spesso combinata con altri predicati se il programma che elabora i risultati della query richiede un valore numerico e si desidera filtrare i case in cui la proprietà non è un numero.
Sintassi
IS_NUMBER(<property>)
Argomenti
<property>
, una proprietà per verificare se si tratta di un numero.
Resi
Valore booleano che indica se il tipo della proprietà specificata è un numero.
Esempio
La query seguente seleziona i gemelli digitali con una proprietà numerica Capacity
e il relativo valore non è uguale a 0.
SELECT *
FROM DIGITALTWINS
WHERE IS_NUMBER( Capacity ) AND Capacity != 0
IS_OBJECT
Funzione di controllo dei tipi per determinare se il valore di una proprietà è di un tipo di oggetto JSON.
Questa funzione viene spesso combinata con altri predicati se il programma che elabora i risultati della query richiede un oggetto JSON e si vogliono filtrare i casi in cui il valore non è un oggetto JSON.
Sintassi
IS_OBJECT<property>)
Argomenti
<property>
, una proprietà per verificare se è di un tipo di oggetto.
Resi
Valore booleano che indica se il tipo della proprietà specificata è un oggetto JSON.
Esempio
La query seguente seleziona tutti i gemelli digitali in cui si tratta di un oggetto denominato MapObject
e non ha una proprietà TemperatureReading
figlio .
SELECT *
FROM DIGITALTWINS
WHERE IS_OBJECT( MapObject ) AND NOT IS_DEFINED ( MapObject.TemperatureReading )
IS_OF_MODEL
Controllo dei tipi e funzione per determinare se un gemello è di un particolare tipo di modello. Include modelli che ereditano dal modello specificato.
Sintassi
IS_OF_MODEL(<twin-collection>,'<model-ID>', exact)
Argomenti
Obbligatorio:
<model-ID>
: ID modello da verificare.
Facoltativi:
<twin-collection>
: specificare una raccolta di dispositivi gemelli da cercare quando sono presenti più di una raccolta , ad esempio quando viene usato un oggettoJOIN
.exact
: richiede una corrispondenza esatta. Se questo parametro non è impostato, il set di risultati include gemelli con modelli che ereditano dal modello specificato.
Resi
Valore booleano che indica se il gemello specificato corrisponde al tipo di modello specificato.
Esempio
La query seguente restituisce gemelli dalla raccolta DT che sono esattamente del tipo di dtmi:example:room;1
modello .
SELECT ROOM FROM DIGITALTWINS DT WHERE IS_OF_MODEL(DT, 'dtmi:example:room;1', exact)
IS_PRIMITIVE
Funzione di controllo dei tipi per determinare se il valore di una proprietà è di un tipo primitivo (string, Boolean, numeric o null
).
Questa funzione viene spesso combinata con altri predicati se il programma che elabora i risultati della query richiede un valore tipizzato primitivo e si vogliono filtrare i casi in cui la proprietà non è primitiva.
Sintassi
IS_PRIMITIVE(<property>)
Argomenti
<property>
, una proprietà per verificare se è di un tipo primitivo.
Resi
Valore booleano che indica se il tipo della proprietà specificata è uno dei tipi primitivi (string, Boolean, numeric o null
).
Esempio
La query seguente restituisce la area
proprietà della factory con l'ID "ABC", solo se la area
proprietà è un tipo primitivo. Per altre informazioni sulla proiezione di determinate colonne nel risultato della query area
,vedere Informazioni di riferimento sul linguaggio di query di Gemelli digitali di Azure: clausola edizione Standard LECT.
SELECT Factory.area
FROM DIGITALTWINS Factory
WHERE Factory.$dtId = 'ABC'
AND IS_PRIMITIVE(Factory.area)
IS_STRING
Funzione di controllo dei tipi per determinare se una proprietà ha un valore stringa.
Questa funzione viene spesso combinata con altri predicati se il programma che elabora i risultati della query richiede un valore stringa e si vogliono filtrare i casi in cui la proprietà non è una stringa.
Sintassi
IS_STRING(<property>)
Argomenti
<property>
, una proprietà per verificare se si tratta di una stringa.
Resi
Valore booleano che indica se il tipo dell'espressione specificata è una stringa.
Esempio
La query seguente seleziona i gemelli digitali con una proprietà della proprietà Status
stringa e il relativo valore non è uguale a Completed
.
SELECT *
FROM DIGITIALTWINS
WHERE IS_STRING( Status ) AND Status != 'Completed'
STARTSWITH
Funzione stringa per determinare se una proprietà stringa di un gemello inizia con una determinata stringa.
Sintassi
STARTSWITH(<string-to-check>,<beginning-string>)
Argomenti
<string-to-check>
: una proprietà gemella di tipo stringa che si desidera controllare l'inizio di<beginning-string>
: stringa che rappresenta l'inizio da verificare
Resi
Valore booleano che indica se la prima espressione stringa inizia con la seconda.
Esempio
La query seguente restituisce tutti i gemelli digitali i cui ID iniziano con area1-
. La stringa da controllare è l'oggetto $dtId
di ogni gemello nell'insieme e la stringa iniziale è area1-
.
SELECT *
FROM DIGITALTWINS T
WHERE STARTSWITH(T.$dtId, 'area1-')