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özdizimi

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

İadeler

Dizinin belirtilen değeri içerip içermediğini gösteren boole değeri.

Örnek

Aşağıdaki sorgu, dizi özelliğine floor_numbersahip olan tüm dijital ikizlerin adını döndürür ve bu özellikte depolanan dizi değerini 2iç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'
  • 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)
  • 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 bir lift ö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").
  • ARRAY_CONTAINS() iç içe dizilerin içinde arama yapmaz.
    • Örneğin, bir ikizin değerine [1, [2,3], 3, 4]sahip bir tags özelliği olduğunu varsayalım. Sorguyu kullanmak için 2 yapılan bir arama döndürürFalse.SELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, 2) Sorguyu kullanma gibi 1 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)
  • dizi nesneleri içeriyorsa ARRAY_CONTAINS() desteklenmez.
    • Örneğin, bir ikizin where Room1 ve Room2 are nesneleri değerine [Room1, Room2] sahip tags bir özelliği olduğunu varsayalım. Bunun gibi sorgular desteklenmez: SELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, Room2).

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özdizimi

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

İadeler

İ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 -routetü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özdizimi

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

İadeler

İlk dize ifadesinin ikincisiyle bitip bitmediğini gösteren boole değeri.

Örnek

Aşağıdaki sorgu, kimlikleri ile biten -smalltü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özdizimi

IS_BOOL(<property>)

Bağımsız değişkenler

<property>, Boole olup olmadığını denetlemek için bir özelliktir.

İadeler

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özdizimi

IS_DEFINED(<property>)

Bağımsız değişkenler

<property>, tanımlanıp tanımlanmadığını belirlemek için bir özelliktir.

İadeler

Ö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özdizimi

IS_NULL(<property>)

Bağımsız değişkenler

<property>, null olup olmadığını denetlemek için bir özellik.

İadeler

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özdizimi

IS_NUMBER(<property>)

Bağımsız değişkenler

<property>, bir sayı olup olmadığını denetlemek için bir özelliktir.

İadeler

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özdizimi

IS_OBJECT<property>)

Bağımsız değişkenler

<property>, nesne türünde olup olmadığını denetlemek için bir özellik.

İadeler

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ı MapObjectbir nesne olduğu ve alt özelliğine TemperatureReadingsahip 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özdizimi

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

İadeler

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;1olan 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özdizimi

IS_PRIMITIVE(<property>)

Bağımsız değişkenler

<property>, ilkel türde olup olmadığını denetlemek için bir özelliktir.

İadeler

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 areaolduğ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özdizimi

IS_STRING(<property>)

Bağımsız değişkenler

<property>, dize olup olmadığını denetlemek için bir özelliktir.

İadeler

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 Completedeş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özdizimi

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

İadeler

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