Azure Digital Twins sorgu dili başvurusu: İşlevler
Bu belge, Azure Digital Twins sorgu diline yönelik işlevlerle ilgili başvuru bilgilerini içerir.
ARRAY_CONTAINS
bir ikizin dizi özelliğinin (DTDL v3'te desteklenir) belirtilen başka bir değer içerip içermediğini belirleyen bir işlev.
Söz dizimi
ARRAY_CONTAINS(<array-to-check>,<contained-value>)
Bağımsız değişkenler
-
<array-to-check>
: Belirtilen değeri denetlemek istediğiniz dizi türü ikiz özelliği -
<contained-value>
: Dizi içinde denetlenecek değeri temsil eden bir dize, tamsayı, çift veya boole değeri
Döndürülenler
Dizinin belirtilen değeri içerip içermediğini gösteren boole değeri.
Örnek
Aşağıdaki sorgu, dizi özelliğine floor_number
sahip olan tüm dijital ikizlerin adını döndürür ve bu özellikte depolanan dizi değerini 2
içerir.
SELECT T.name
FROM DIGITALTWINS T
WHERE ARRAY_CONTAINS (T.floor_number, 2)
Sınırlamalar
ARRAY_CONTAINS() işlevi aşağıdaki sınırlamalara sahiptir:
- Dizi dizin oluşturma desteklenmez.
- Örneğin
array-name[index] = 'foo_bar'
- Örneğin
- ARRAY_CONTAINS() özelliği içindeki alt sorgular desteklenmez.
- Örneğin
SELECT T.name FROM DIGITALTWINS T WHERE ARRAY_CONTAINS (SELECT S.floor_number FROM DIGITALTWINS S, 4)
- Örneğin
- ARRAY_CONTAINS() ilişkilerin özelliklerinde desteklenmez.
- Örneğin, Floor ile Room arasında bir ilişki olduğunu ve değerini
["operating", "under maintenance", "under construction"]
içeren birlift
özelliği olduğunu varsayalımFloor.Contains
. Bunun gibi sorgular desteklenmez:SELECT Room FROM DIGITALTWINS Floor JOIN Room RELATED Floor.Contains WHERE Floor.$dtId = 'Floor-35' AND ARRAY_CONTAINS(Floor.Contains.lift, "operating")
.
- Örneğin, Floor ile Room arasında bir ilişki olduğunu ve değerini
- ARRAY_CONTAINS() iç içe dizilerin içinde arama yapmaz.
- Örneğin, bir ikizin değerine
[1, [2,3], 3, 4]
sahip birtags
özelliği olduğunu varsayalım. Sorguyu kullanmak için2
yapılan bir arama döndürürFalse
.SELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, 2)
Sorguyu kullanma gibi1
en üst düzey dizideki bir değer için yapılan arama döndürürTrue
.SELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, 1)
- Örneğin, bir ikizin değerine
- dizi nesneleri içeriyorsa ARRAY_CONTAINS() desteklenmez.
- Örneğin, bir ikizin where
Room1
veRoom2
are nesneleri değerine[Room1, Room2]
sahiptags
bir özelliği olduğunu varsayalım. Bunun gibi sorgular desteklenmez:SELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, Room2)
.
- Örneğin, bir ikizin where
CONTAINS
bir ikizin dize özelliğinin başka bir belirtilen dize değeri içerip içermediğini belirlemek için bir dize işlevi.
Söz dizimi
CONTAINS(<string-to-check>,<contained-string>)
Bağımsız değişkenler
-
<string-to-check>
: Belirtilen değeri denetlemek istediğiniz dize türü ikiz özelliği -
<contained-string>
: Denetlenecek değeri temsil eden bir dize
Döndürülenler
İlk dize ifadesinin ikinci dize ifadesinde tanımlanan karakter dizisini içerip içermediğini gösteren boole değeri.
Örnek
Aşağıdaki sorgu, kimlikleri içeren -route
tüm dijital ikizleri döndürür. Denetlenecek $dtId
dize, koleksiyondaki her ikizin dizesidir ve içerdiği dize ise şeklindedir -route
.
SELECT *
FROM DIGITALTWINS T
WHERE CONTAINS(T.$dtId, '-route')
ENDSWITH
Bir ikizin dize özelliğinin başka bir dizeyle bitip bitmediğini saptamak için bir dize işlevi.
Söz dizimi
ENDSWITH(<string-to-check>,<ending-string>)
Bağımsız değişkenler
-
<string-to-check>
: Sonunu denetlemek istediğiniz dize türü ikiz özelliği -
<ending-string>
: Denetlenecek sonu temsil eden bir dize
Döndürülenler
İlk dize ifadesinin ikincisiyle bitip bitmediğini gösteren boole değeri.
Örnek
Aşağıdaki sorgu, kimlikleri ile biten -small
tüm dijital ikizleri döndürür. Denetlenecek dize, $dtId
koleksiyondaki her ikizin dizesidir ve bitiş dizesi ise şeklindedir -small
.
SELECT *
FROM DIGITALTWINS T
WHERE ENDSWITH(T.$dtId, '-small')
IS_BOOL
Bir özelliğin Boole değeri olup olmadığını belirlemek için bir tür denetimi işlevi.
Sorgu sonuçlarını işleyen program boole değeri gerektiriyorsa ve özelliğin boole olmadığı durumları filtrelemek istiyorsanız, bu işlev genellikle diğer koşullarla birleştirilir.
Söz dizimi
IS_BOOL(<property>)
Bağımsız değişkenler
<property>
, Boole olup olmadığını denetlemek için bir özelliktir.
Döndürülenler
Belirtilen özelliğin türünün Boole olup olmadığını belirten boole değeri.
Örnek
Aşağıdaki sorgu boole HasTemperature
özelliğine sahip dijital ikizleri seçer.
SELECT *
FROM DIGITALTWINS T
WHERE IS_BOOL( HasTemperature )
Aşağıdaki sorgu, boole HasTemperature
özelliğine sahip dijital ikizleri seçmek için yukarıdaki örnekte oluşturulur ve bu özelliğin değeri değildir false
.
SELECT *
FROM DIGITALTWINS T
WHERE IS_BOOL( HasTemperature ) AND HasTemperature != false
IS_DEFINED
Bir özelliğin tanımlanıp tanımlanmadığını belirlemek için bir tür denetimi işlevi.
Söz dizimi
IS_DEFINED(<property>)
Bağımsız değişkenler
<property>
, tanımlanıp tanımlanmadığını belirlemek için bir özelliktir.
Döndürülenler
Özelliğe bir değer atanıp atanmadığını gösteren boole değeri.
Örnek
Aşağıdaki sorgu, tanımlı Location
özelliği olan tüm dijital ikizleri döndürür.
SELECT *
FROM DIGITALTWINS
WHERE IS_DEFINED(Location)
IS_NULL
Bir özelliğin değerinin olup olmadığını belirlemek için bir tür denetimi işlevi.null
Söz dizimi
IS_NULL(<property>)
Bağımsız değişkenler
<property>
, null olup olmadığını denetlemek için bir özellik.
Döndürülenler
Belirtilen özelliğin türünün olup olmadığını belirten boole değeri.null
Örnek
Aşağıdaki sorgu, Sıcaklık için null değeri olmayan ikizleri döndürür. Bu sorguda kullanılan işleç hakkında NOT
daha fazla bilgi için bkz . Azure Digital Twins sorgu dili başvurusu: İşleçler.
SELECT *
FROM DIGITALTWINS T
WHERE NOT IS_NULL(T.Temperature)
IS_NUMBER
Bir özelliğin sayı değerine sahip olup olmadığını belirlemek için bir tür denetimi işlevi.
Sorgu sonuçlarını işleyen program bir sayı değeri gerektiriyorsa ve özelliğin sayı olmadığı durumları filtrelemek istiyorsanız, bu işlev genellikle diğer koşullarla birleştirilir.
Söz dizimi
IS_NUMBER(<property>)
Bağımsız değişkenler
<property>
, bir sayı olup olmadığını denetlemek için bir özelliktir.
Döndürülenler
Belirtilen özelliğin türünün bir sayı olup olmadığını gösteren boole değeri.
Örnek
Aşağıdaki sorgu, sayısal Capacity
özelliği olan dijital ikizleri seçer ve değeri 0'a eşit değildir.
SELECT *
FROM DIGITALTWINS
WHERE IS_NUMBER( Capacity ) AND Capacity != 0
IS_OBJECT
Bir özelliğin değerinin JSON nesne türünde olup olmadığını belirlemek için bir tür denetimi işlevi.
Sorgu sonuçlarını işleyen program bir JSON nesnesi gerektiriyorsa ve değerin JSON nesnesi olmadığı durumları filtrelemek istiyorsanız, bu işlev genellikle diğer koşullarla birleştirilir.
Söz dizimi
IS_OBJECT<property>)
Bağımsız değişkenler
<property>
, nesne türünde olup olmadığını denetlemek için bir özellik.
Döndürülenler
Belirtilen özelliğin türünün bir JSON nesnesi olup olmadığını gösteren boole değeri.
Örnek
Aşağıdaki sorgu, bunun adlı MapObject
bir nesne olduğu ve alt özelliğine TemperatureReading
sahip olmadığı tüm dijital ikizleri seçer.
SELECT *
FROM DIGITALTWINS
WHERE IS_OBJECT( MapObject ) AND NOT IS_DEFINED ( MapObject.TemperatureReading )
IS_OF_MODEL
Bir ikizin belirli bir model türünde olup olmadığını belirlemek için bir tür denetimi ve işlevi. Belirtilen modelden devralan modelleri içerir.
Söz dizimi
IS_OF_MODEL(<twin-collection>,'<model-ID>', exact)
Bağımsız değişkenler
Gerekli:
-
<model-ID>
: Denetlenecek model kimliği.
İsteğe bağlı:
-
<twin-collection>
: Birden fazla olduğunda (örneğin, kullanıldığında) aranacak birJOIN
ikiz koleksiyonu belirtin. -
exact
: Tam eşleşme iste. Bu parametre ayarlı değilse, sonuç kümesi belirtilen modelden devralan modellere sahip ikizler içerir.
Döndürülenler
Belirtilen ikizin belirtilen model türüyle eşleşip eşleşmediğini belirten boole değeri.
Örnek
Aşağıdaki sorgu, DT koleksiyonundan model türünde dtmi:example:room;1
olan ikizleri döndürür.
SELECT ROOM FROM DIGITALTWINS DT WHERE IS_OF_MODEL(DT, 'dtmi:example:room;1', exact)
IS_PRIMITIVE
Bir özelliğin değerinin ilkel türde (dize, Boole, sayısal veya null
) olup olmadığını belirlemek için bir tür denetleme işlevi.
Sorgu sonuçlarını işleyen program ilkel türde bir değer gerektiriyorsa ve özelliğin ilkel olmadığı durumları filtrelemek istiyorsanız, bu işlev genellikle diğer koşullarla birleştirilir.
Söz dizimi
IS_PRIMITIVE(<property>)
Bağımsız değişkenler
<property>
, ilkel türde olup olmadığını denetlemek için bir özelliktir.
Döndürülenler
Belirtilen özelliğin türünün ilkel türlerden biri olup olmadığını belirten boole değeri (dize, Boole, sayısal veya null
).
Örnek
Aşağıdaki sorgu, Fabrika'nın 'ABC' kimliğine sahip özelliğini yalnızca özelliği ilkel bir türse area
döndürürarea
. Sorgu sonucundaki belirli sütunları yansıtma hakkında daha fazla bilgi için (bu sorguda area
olduğu gibi), bkz . Azure Digital Twins sorgu dili başvurusu: SELECT yan tümcesi.
SELECT Factory.area
FROM DIGITALTWINS Factory
WHERE Factory.$dtId = 'ABC'
AND IS_PRIMITIVE(Factory.area)
IS_STRING
Bir özelliğin dize değerine sahip olup olmadığını belirlemek için bir tür denetimi işlevi.
Sorgu sonuçlarını işleyen program bir dize değeri gerektiriyorsa ve özelliğin dize olmadığı durumları filtrelemek istiyorsanız, bu işlev genellikle diğer koşullarla birleştirilir.
Söz dizimi
IS_STRING(<property>)
Bağımsız değişkenler
<property>
, dize olup olmadığını denetlemek için bir özelliktir.
Döndürülenler
Belirtilen ifadenin türünün bir dize olup olmadığını gösteren boole değeri.
Örnek
Aşağıdaki sorgu, dize özelliği Status
özelliğine sahip olan dijital ikizleri seçer ve değeri ile Completed
eşit değildir.
SELECT *
FROM DIGITIALTWINS
WHERE IS_STRING( Status ) AND Status != 'Completed'
STARTSWITH
bir ikizin dize özelliğinin başka bir dizeyle başlayıp başlamadığını belirlemek için bir dize işlevi.
Söz dizimi
STARTSWITH(<string-to-check>,<beginning-string>)
Bağımsız değişkenler
-
<string-to-check>
: Başlangıcını denetlemek istediğiniz dize türü ikiz özelliği -
<beginning-string>
: Denetlenecek başlangıcı temsil eden bir dize
Döndürülenler
İlk dize ifadesinin ikincisiyle başlayıp başlamadığını gösteren boole değeri.
Örnek
Aşağıdaki sorgu, kimlikleri ile area1-
başlayan tüm dijital ikizleri döndürür. Denetlenecek dize, koleksiyondaki her ikizin dizesidir $dtId
ve başlangıç dizesi ise şeklindedir area1-
.
SELECT *
FROM DIGITALTWINS T
WHERE STARTSWITH(T.$dtId, 'area1-')