Az Azure Digital Twins lekérdezési nyelvének referenciája: Functions
Ez a dokumentum az Azure Digital Twins lekérdezési nyelvének függvényeivel kapcsolatos referenciainformációkat tartalmazza.
ARRAY_CONTAINS
Egy függvény, amely meghatározza, hogy egy ikerpéldány tömbtulajdonsága (a DTDL v3-ban támogatott) tartalmaz-e egy másik megadott értéket.
Syntax
ARRAY_CONTAINS(<array-to-check>,<contained-value>)
Argumentumok
-
<array-to-check>
: Egy tömb típusú ikertulajdonság, amelyet ellenőrizni szeretne a megadott értékben -
<contained-value>
: A tömbben keresendő értéket képviselő karakterlánc, egész szám, dupla vagy logikai érték
Válaszok
Logikai érték, amely azt jelzi, hogy a tömb tartalmazza-e a megadott értéket.
Példa
Az alábbi lekérdezés a tömbtulajdonságokkal floor_number
rendelkező összes digitális ikerpéldány nevét adja vissza, és a tulajdonságban tárolt tömb értéke 2
a következő.
SELECT T.name
FROM DIGITALTWINS T
WHERE ARRAY_CONTAINS (T.floor_number, 2)
Korlátozások
A ARRAY_CONTAINS() függvényre a következő korlátozások vonatkoznak:
- A tömbindexelés nem támogatott.
- Például:
array-name[index] = 'foo_bar'
- Például:
- A ARRAY_CONTAINS() tulajdonságban lévő albekérdezések nem támogatottak.
- Például:
SELECT T.name FROM DIGITALTWINS T WHERE ARRAY_CONTAINS (SELECT S.floor_number FROM DIGITALTWINS S, 4)
- Például:
- ARRAY_CONTAINS() a kapcsolatok tulajdonságai nem támogatottak.
- Tegyük fel például, hogy
Floor.Contains
egy kapcsolat a Padló és a Helyiség között, és van egylift
tulajdonsága, amelynek értéke a["operating", "under maintenance", "under construction"]
következő: . Az ilyen lekérdezések nem támogatottak:SELECT Room FROM DIGITALTWINS Floor JOIN Room RELATED Floor.Contains WHERE Floor.$dtId = 'Floor-35' AND ARRAY_CONTAINS(Floor.Contains.lift, "operating")
.
- Tegyük fel például, hogy
- ARRAY_CONTAINS() nem keres beágyazott tömbökben.
- Tegyük fel például, hogy egy ikerpéldánynak van egy
tags
olyan tulajdonsága, amelynek értéke .[1, [2,3], 3, 4]
A lekérdezéstSELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, 2)
használó keresés2
eredményeFalse
. Egy érték keresése a legfelső szintű tömbben, például1
a lekérdezésSELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, 1)
használatával, visszaadja a függvénytTrue
.
- Tegyük fel például, hogy egy ikerpéldánynak van egy
- ARRAY_CONTAINS() nem támogatott, ha a tömb objektumokat tartalmaz.
- Tegyük fel például, hogy egy ikerpéldánynak van egy
tags
olyan tulajdonsága[Room1, Room2]
, amelynek értéke holRoom1
ésRoom2
objektum. Az ilyen lekérdezések nem támogatottak:SELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, Room2)
.
- Tegyük fel például, hogy egy ikerpéldánynak van egy
CONTAINS
Sztringfüggvény annak meghatározásához, hogy egy ikerpéldány sztringtulajdonsága tartalmaz-e egy másik megadott sztringértéket.
Syntax
CONTAINS(<string-to-check>,<contained-string>)
Argumentumok
-
<string-to-check>
: Egy sztring típusú ikertulajdonság, amelyet ellenőrizni szeretne a megadott értékben -
<contained-string>
: Az ellenőrizni kívánt értéket képviselő sztring
Válaszok
Logikai érték, amely azt jelzi, hogy az első sztringkifejezés tartalmazza-e a második sztringkifejezésben definiált karakterek sorozatát.
Példa
Az alábbi lekérdezés visszaadja az összes olyan digitális ikerpéldányt, amelynek azonosítói tartalmazzák -route
azokat. Az ellenőrizni kívánt sztring a $dtId
gyűjtemény minden ikerpéldánya, a tartalmazott sztring pedig a -route
.
SELECT *
FROM DIGITALTWINS T
WHERE CONTAINS(T.$dtId, '-route')
ENDSWITH
Sztringfüggvény annak meghatározására, hogy egy ikerpéldány sztringtulajdonsága egy bizonyos másik sztringben végződik-e.
Syntax
ENDSWITH(<string-to-check>,<ending-string>)
Argumentumok
-
<string-to-check>
: Egy sztring típusú ikertulajdonság, amelyet ellenőrizni szeretne a -
<ending-string>
: A befejezést jelző sztring, amely a kereséshez szükséges
Válaszok
Logikai érték, amely azt jelzi, hogy az első sztringkifejezés a másodikkal végződik-e.
Példa
Az alábbi lekérdezés visszaadja az összes olyan digitális ikerpéldányt, amelynek azonosítói végződnek.-small
Az ellenőrizni kívánt sztring a $dtId
gyűjtemény minden ikerpéldánya, a záró sztring pedig a -small
.
SELECT *
FROM DIGITALTWINS T
WHERE ENDSWITH(T.$dtId, '-small')
IS_BOOL
Típusellenőrző függvény annak meghatározásához, hogy egy tulajdonság logikai értékkel rendelkezik-e.
Ezt a függvényt gyakran kombinálják más predikátumokkal, ha a lekérdezési eredményeket feldolgozó program logikai értéket igényel, és ki szeretné szűrni azokat az eseteket, amikor a tulajdonság nem logikai érték.
Syntax
IS_BOOL(<property>)
Argumentumok
<property>
tulajdonságot, amely ellenőrzi, hogy logikai értékről van-e szó.
Válaszok
Logikai érték, amely azt jelzi, hogy a megadott tulajdonság típusa logikai-e.
Példa
Az alábbi lekérdezés a logikai HasTemperature
tulajdonságú digitális ikerpéldányokat választja ki.
SELECT *
FROM DIGITALTWINS T
WHERE IS_BOOL( HasTemperature )
Az alábbi lekérdezés a fenti példára épül, és kiválasztja azokat a digitális ikerpéldányokat, amelyek logikai HasTemperature
tulajdonságot használnak, és a tulajdonság értéke nem false
.
SELECT *
FROM DIGITALTWINS T
WHERE IS_BOOL( HasTemperature ) AND HasTemperature != false
IS_DEFINED
Típusellenőrző függvény, amely meghatározza, hogy van-e definiálva egy tulajdonság.
Syntax
IS_DEFINED(<property>)
Argumentumok
<property>
tulajdonságot, amely meghatározza, hogy definiálva van-e.
Válaszok
Logikai érték, amely azt jelzi, hogy a tulajdonsághoz érték van-e rendelve.
Példa
Az alábbi lekérdezés visszaadja az összes olyan digitális ikerpéldányt, aki rendelkezik meghatározott Location
tulajdonságokkal.
SELECT *
FROM DIGITALTWINS
WHERE IS_DEFINED(Location)
IS_NULL
Típusellenőrző függvény annak meghatározásához, hogy egy tulajdonság értéke .null
Syntax
IS_NULL(<property>)
Argumentumok
<property>
tulajdonságot, amely ellenőrzi, hogy null értékű-e.
Válaszok
Logikai érték, amely azt jelzi, hogy a megadott tulajdonság típusa.null
Példa
Az alábbi lekérdezés azokat az ikerpéldányokat adja vissza, akik nem rendelkeznek null értékkel a Temperature értékhez. A lekérdezésben használt operátorral kapcsolatos további információkért tekintse meg az NOT
Azure Digital Twins lekérdezési nyelvének hivatkozását: Operátorok.
SELECT *
FROM DIGITALTWINS T
WHERE NOT IS_NULL(T.Temperature)
IS_NUMBER
Típusellenőrző függvény annak meghatározásához, hogy egy tulajdonság rendelkezik-e számértékel.
Ezt a függvényt gyakran kombinálják más predikátumokkal, ha a lekérdezési eredményeket feldolgozó program számértéket igényel, és ki szeretné szűrni azokat az eseteket, amikor a tulajdonság nem szám.
Syntax
IS_NUMBER(<property>)
Argumentumok
<property>
tulajdonságot, amely ellenőrzi, hogy szám-e.
Válaszok
Logikai érték, amely azt jelzi, hogy a megadott tulajdonság típusa szám-e.
Példa
Az alábbi lekérdezés a numerikus Capacity
tulajdonságú digitális ikerpéldányokat választja ki, és értéke nem egyenlő 0-nal.
SELECT *
FROM DIGITALTWINS
WHERE IS_NUMBER( Capacity ) AND Capacity != 0
IS_OBJECT
Típusellenőrző függvény annak meghatározásához, hogy egy tulajdonság értéke JSON-objektumtípus-e.
Ezt a függvényt gyakran kombinálják más predikátumokkal, ha a lekérdezési eredményeket feldolgozó program JSON-objektumot igényel, és ki szeretné szűrni azokat az eseteket, amikor az érték nem JSON-objektum.
Syntax
IS_OBJECT<property>)
Argumentumok
<property>
tulajdonságot, amely ellenőrzi, hogy objektumtípusról van-e szó.
Válaszok
Logikai érték, amely azt jelzi, hogy a megadott tulajdonság típusa JSON-objektum-e.
Példa
Az alábbi lekérdezés kiválasztja az összes digitális ikerpéldányt, ahol ez egy úgynevezett MapObject
objektum, és nem rendelkezik gyermektulajdonságokkal TemperatureReading
.
SELECT *
FROM DIGITALTWINS
WHERE IS_OBJECT( MapObject ) AND NOT IS_DEFINED ( MapObject.TemperatureReading )
IS_OF_MODEL
Típusellenőrzés és függvény annak meghatározásához, hogy az ikerpéldány egy adott modelltípus-e. A megadott modelltől öröklő modelleket is tartalmazza.
Syntax
IS_OF_MODEL(<twin-collection>,'<model-ID>', exact)
Argumentumok
Szükséges:
-
<model-ID>
: Az ellenőrizni kívánt modellazonosító.
Választható:
-
<twin-collection>
: Adjon meg egy ikergyűjteményt, amely akkor kereshető, ha egynél több van (például amikorJOIN
egy van használatban). -
exact
: Pontos egyezést igényel. Ha ez a paraméter nincs beállítva, az eredményhalmaz olyan ikerpéldányokat tartalmaz, amelyek a megadott modelltől öröklődnek.
Válaszok
Logikai érték, amely azt jelzi, hogy a megadott ikerpéldány megfelel-e a megadott modelltípusnak.
Példa
Az alábbi lekérdezés az ikerpéldányokat adja vissza a DT-gyűjteményből, amelyek pontosan a modelltípushoz tartoznak dtmi:example:room;1
.
SELECT ROOM FROM DIGITALTWINS DT WHERE IS_OF_MODEL(DT, 'dtmi:example:room;1', exact)
IS_PRIMITIVE
Típusellenőrző függvény annak meghatározásához, hogy egy tulajdonság értéke primitív típusú-e (sztring, logikai, numerikus vagy null
).
Ezt a függvényt gyakran kombinálják más predikátumokkal, ha a lekérdezési eredményeket feldolgozó program primitív típusú értéket igényel, és ki szeretné szűrni azokat az eseteket, amikor a tulajdonság nem primitív.
Syntax
IS_PRIMITIVE(<property>)
Argumentumok
<property>
tulajdonság, amely ellenőrzi, hogy primitív típusú-e.
Válaszok
Logikai érték, amely azt jelzi, hogy a megadott tulajdonság típusa az egyik kezdetleges típus (sztring, logikai, numerikus vagy null
).
Példa
Az alábbi lekérdezés csak akkor adja vissza a area
Factory tulajdonságát az "ABC" azonosítóval, ha a area
tulajdonság egy primitív típus. További információ a lekérdezés eredményének bizonyos oszlopainak kivetítéséről (mint a lekérdezés esetében area
), tekintse meg az Azure Digital Twins lekérdezési nyelvének hivatkozását: SELECT záradék.
SELECT Factory.area
FROM DIGITALTWINS Factory
WHERE Factory.$dtId = 'ABC'
AND IS_PRIMITIVE(Factory.area)
IS_STRING
Típusellenőrző függvény annak meghatározásához, hogy egy tulajdonság rendelkezik-e sztringértékel.
Ezt a függvényt gyakran kombinálják más predikátumokkal, ha a lekérdezési eredményeket feldolgozó program sztringértéket igényel, és ki szeretné szűrni azokat az eseteket, amikor a tulajdonság nem sztring.
Syntax
IS_STRING(<property>)
Argumentumok
<property>
tulajdonságot, amely ellenőrzi, hogy sztringről van-e szó.
Válaszok
Logikai érték, amely azt jelzi, hogy a megadott kifejezés típusa sztring-e.
Példa
Az alábbi lekérdezés kiválasztja azokat a digitális ikerpéldányokat, amelyek sztringtulajdonság-tulajdonságot Status
rendelkeznek, és értéke nem egyenlő.Completed
SELECT *
FROM DIGITIALTWINS
WHERE IS_STRING( Status ) AND Status != 'Completed'
STARTSWITH
Sztringfüggvény annak meghatározásához, hogy egy ikerpéldány sztringtulajdonsága egy bizonyos másik sztringgel kezdődik-e.
Syntax
STARTSWITH(<string-to-check>,<beginning-string>)
Argumentumok
-
<string-to-check>
: Egy sztring típusú ikertulajdonság, amelyet ellenőrizni szeretne a -
<beginning-string>
: A keresés kezdetét jelző sztring
Válaszok
Logikai érték, amely azt jelzi, hogy az első sztringkifejezés a másodikkal kezdődik-e.
Példa
Az alábbi lekérdezés az összes olyan digitális ikerpéldányt visszaadja, amelynek azonosítói a következővel area1-
kezdődnek: Az ellenőrizni kívánt sztring a $dtId
gyűjtemény minden ikerpéldánya, az első sztring pedig a area1-
.
SELECT *
FROM DIGITALTWINS T
WHERE STARTSWITH(T.$dtId, 'area1-')