Share via


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>)

Arguments

  • <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

Visszáruk

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_numberrendelkező összes digitális ikerpéldány nevét adja vissza, és a tulajdonságban tárolt tömb értéke 2a 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'
  • 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)
  • 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 egy lift 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").
  • 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ést SELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, 2) használó keresés 2 eredményeFalse. Egy érték keresése a legfelső szintű tömbben, például 1 a lekérdezés SELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, 1)használatával, visszaadja a függvényt True.
  • 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 hol Room1 és Room2 objektum. Az ilyen lekérdezések nem támogatottak: SELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, Room2).

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>)

Arguments

  • <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

Visszáruk

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 -routeazokat. 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>)

Arguments

  • <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

Visszáruk

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>)

Arguments

<property>tulajdonságot, amely ellenőrzi, hogy logikai értékről van-e szó.

Visszáruk

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>)

Arguments

<property>tulajdonságot, amely meghatározza, hogy definiálva van-e.

Visszáruk

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>)

Arguments

<property>tulajdonságot, amely ellenőrzi, hogy null értékű-e.

Visszáruk

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>)

Arguments

<property>tulajdonságot, amely ellenőrzi, hogy szám-e.

Visszáruk

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>)

Arguments

<property>tulajdonságot, amely ellenőrzi, hogy objektumtípusról van-e szó.

Visszáruk

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 MapObjectobjektum, é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)

Arguments

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 amikor JOIN 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.

Visszáruk

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>)

Arguments

<property>tulajdonság, amely ellenőrzi, hogy primitív típusú-e.

Visszáruk

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ébenarea), lásd az Azure Digital Twins lekérdezési nyelvi referenciáját: Standard kiadás LECT 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>)

Arguments

<property>tulajdonságot, amely ellenőrzi, hogy sztringről van-e szó.

Visszáruk

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>)

Arguments

  • <string-to-check>: Egy sztring típusú ikertulajdonság, amelyet ellenőrizni szeretne a
  • <beginning-string>: A keresés kezdetét jelző sztring

Visszáruk

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-')