Referensi bahasa kueri Azure Digital Twins - Fungsi
Dokumen ini berisi informasi referensi tentang fungsi untuk bahasa kueri Azure Digital Twins.
ARRAY_CONTAINS
Fungsi untuk menentukan apakah properti array kembar (didukung di DTDL v3) berisi nilai lain yang ditentukan.
Sintaks
ARRAY_CONTAINS(<array-to-check>,<contained-value>)
Argumen
-
<array-to-check>
: Properti kembar jenis array yang ingin Anda periksa nilai yang ditentukan -
<contained-value>
: String, bilangan bulat, ganda, atau boolean yang mewakili nilai untuk diperiksa di dalam array
Mengembalikan
Nilai Boolean yang menunjukkan apakah array berisi nilai yang ditentukan.
Contoh
Kueri berikut mengembalikan nama semua kembar digital yang memiliki properti floor_number
array , dan array yang disimpan dalam properti ini berisi nilai 2
.
SELECT T.name
FROM DIGITALTWINS T
WHERE ARRAY_CONTAINS (T.floor_number, 2)
Batasan
Fungsi ARRAY_CONTAINS() memiliki batasan berikut:
- Pengindeksan array belum didukung.
- Misalnya:
array-name[index] = 'foo_bar'
- Misalnya:
- Subkueri dalam properti ARRAY_CONTAINS() tidak didukung.
- Misalnya:
SELECT T.name FROM DIGITALTWINS T WHERE ARRAY_CONTAINS (SELECT S.floor_number FROM DIGITALTWINS S, 4)
- Misalnya:
- ARRAY_CONTAINS() tidak didukung pada properti hubungan.
- Misalnya, katakanlah
Floor.Contains
adalah hubungan dari Lantai ke Kamar dan memilikilift
properti dengan nilai["operating", "under maintenance", "under construction"]
. Kueri seperti ini tidak didukung:SELECT Room FROM DIGITALTWINS Floor JOIN Room RELATED Floor.Contains WHERE Floor.$dtId = 'Floor-35' AND ARRAY_CONTAINS(Floor.Contains.lift, "operating")
.
- Misalnya, katakanlah
- ARRAY_CONTAINS() tidak mencari di dalam array berlapis.
- Misalnya, katakanlah kembar memiliki
tags
properti dengan nilai[1, [2,3], 3, 4]
. Pencarian untuk2
menggunakan kueriSELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, 2)
mengembalikanFalse
. Pencarian nilai di array tingkat atas, seperti1
menggunakan kueriSELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, 1)
, mengembalikanTrue
.
- Misalnya, katakanlah kembar memiliki
- ARRAY_CONTAINS() tidak didukung jika array berisi objek.
- Misalnya, katakanlah kembar memiliki
tags
properti dengan nilai[Room1, Room2]
di manaRoom1
danRoom2
merupakan objek. Kueri seperti ini tidak didukung:SELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, Room2)
.
- Misalnya, katakanlah kembar memiliki
BERISI
Fungsi string untuk menentukan apakah properti string kembar berisi nilai string lain yang ditentukan.
Sintaks
CONTAINS(<string-to-check>,<contained-string>)
Argumen
-
<string-to-check>
: Properti kembar jenis string yang ingin Anda periksa nilai yang ditentukan -
<contained-string>
: String yang mewakili nilai yang akan diperiksa
Mengembalikan
Nilai Boolean yang menunjukkan apakah ekspresi string pertama berisi urutan karakter yang ditentukan dalam ekspresi string kedua.
Contoh
Kueri berikut mengembalikan semua kembar digital yang ID-nya berisi -route
. String yang akan diperiksa adalah dari setiap kembar $dtId
dalam koleksi, dan string yang terkandung adalah -route
.
SELECT *
FROM DIGITALTWINS T
WHERE CONTAINS(T.$dtId, '-route')
ENDSWITH
Fungsi string untuk menentukan apakah properti string kembar berakhir dengan string tertentu lainnya.
Sintaks
ENDSWITH(<string-to-check>,<ending-string>)
Argumen
-
<string-to-check>
: Properti kembar jenis string yang ingin Anda periksa akhirannya -
<ending-string>
: Untai (karakter) yang mewakili akhiran untuk diperiksa
Mengembalikan
Nilai Boolean yang menunjukkan apakah ekspresi untai (karakter) pertama berakhir dengan yang kedua.
Contoh
Kueri berikut mengembalikan semua kembar digital yang ID-nya berakhiran dengan-small
. String yang akan diperiksa adalah dari setiap kembar $dtId
dalam koleksi, dan string akhirnya adalah -small
.
SELECT *
FROM DIGITALTWINS T
WHERE ENDSWITH(T.$dtId, '-small')
IS_BOOL
Fungsi pemeriksaan jenis untuk menentukan apakah properti memiliki nilai Boolean.
Fungsi ini sering dikombinasikan dengan predikat lain jika program yang memproses hasil kueri memerlukan nilai boolean, dan Anda ingin memfilter kasus di mana properti bukan boolean.
Sintaks
IS_BOOL(<property>)
Argumen
<property>
, properti untuk memeriksa apakah itu Boolean.
Mengembalikan
Nilai Boolean yang menunjukkan apakah jenis properti yang ditentukan adalah Boolean.
Contoh
Kueri berikut memilih kembar digital yang memiliki properti HasTemperature
boolean.
SELECT *
FROM DIGITALTWINS T
WHERE IS_BOOL( HasTemperature )
Kueri berikut dibangun pada contoh di atas untuk memilih kembar digital yang memiliki properti boolean HasTemperature
, dan nilai properti tersebut bukan false
.
SELECT *
FROM DIGITALTWINS T
WHERE IS_BOOL( HasTemperature ) AND HasTemperature != false
IS_DEFINED
Fungsi pemeriksaan jenis untuk menentukan apakah properti ditentukan.
Sintaks
IS_DEFINED(<property>)
Argumen
<property>
, properti untuk menentukan apakah properti ditentukan.
Mengembalikan
Nilai Boolean menunjukkan apakah properti telah diberi nilai.
Contoh
Kueri berikut mengembalikan semua kembar digital yang memiliki properti yang ditentukan Location
.
SELECT *
FROM DIGITALTWINS
WHERE IS_DEFINED(Location)
IS_NULL
Fungsi pemeriksaan jenis untuk menentukan apakah nilai properti adalah null
.
Sintaks
IS_NULL(<property>)
Argumen
<property>
, properti untuk memeriksa apakah itu null.
Mengembalikan
Nilai Boolean yang menunjukkan apakah jenis properti yang ditentukan adalah null
.
Contoh
Kueri berikut mengembalikan twin yang tidak memiliki nilai null untuk Suhu. Untuk informasi selengkapnya tentang NOT
operator yang digunakan dalam kueri ini, lihat Referensi bahasa kueri Azure Digital Twins: Operator.
SELECT *
FROM DIGITALTWINS T
WHERE NOT IS_NULL(T.Temperature)
IS_NUMBER
Fungsi pemeriksaan jenis untuk menentukan apakah properti memiliki nilai angka.
Fungsi ini sering dikombinasikan dengan predikat lain jika program yang memproses hasil kueri memerlukan nilai angka, dan Anda ingin memfilter kasus di mana properti bukan angka.
Sintaks
IS_NUMBER(<property>)
Argumen
<property>
, properti untuk memeriksa apakah itu angka.
Mengembalikan
Nilai Boolean yang menunjukkan apakah jenis properti yang ditentukan adalah angka.
Contoh
Kueri berikut memilih kembar digital yang memiliki properti numerik Capacity
dan nilainya tidak sama dengan 0.
SELECT *
FROM DIGITALTWINS
WHERE IS_NUMBER( Capacity ) AND Capacity != 0
IS_OBJECT
Fungsi pemeriksaan jenis untuk menentukan apakah nilai properti adalah jenis objek JSON.
Fungsi ini sering dikombinasikan dengan predikat lain jika program yang memproses hasil kueri memerlukan objek JSON, dan Anda ingin memfilter kasus di mana nilainya bukan objek JSON.
Sintaks
IS_OBJECT<property>)
Argumen
<property>
, properti untuk memeriksa apakah itu dari jenis objek.
Mengembalikan
Nilai Boolean yang menunjukkan apakah jenis properti yang ditentukan adalah objek JSON.
Contoh
Kueri berikut memilih semua kembar digital di mana ini adalah objek yang disebut MapObject
, dan tidak memiliki properti TemperatureReading
anak .
SELECT *
FROM DIGITALTWINS
WHERE IS_OBJECT( MapObject ) AND NOT IS_DEFINED ( MapObject.TemperatureReading )
IS_OF_MODEL
Pemeriksaan jenis dan fungsi untuk menentukan apakah kembar adalah jenis model tertentu. Memasukkan model yang mewarisi dari model yang ditentukan.
Sintaks
IS_OF_MODEL(<twin-collection>,'<model-ID>', exact)
Argumen
Wajib diisi:
-
<model-ID>
: ID model untuk diperiksa.
Opsional:
-
<twin-collection>
: Tentukan koleksi kembar untuk dicari saat ada lebih dari satu (seperti saatJOIN
digunakan). -
exact
: Membutuhkan kecocokan yang tepat. Jika parameter ini tidak diatur, kumpulan hasil menyertakan kembar dengan model yang mewarisi dari model yang ditentukan.
Mengembalikan
Nilai Boolean menunjukkan apakah twin yang ditentukan cocok dengan jenis model yang ditentukan.
Contoh
Kueri berikut mengembalikan twin dari koleksi DT yang persis dengan jeni model dtmi:example:room;1
.
SELECT ROOM FROM DIGITALTWINS DT WHERE IS_OF_MODEL(DT, 'dtmi:example:room;1', exact)
IS_PRIMITIVE
Fungsi pemeriksaan jenis untuk menentukan apakah nilai properti berjenis primitif (string, Boolean, numerik, atau null
).
Fungsi ini sering dikombinasikan dengan predikat lain jika program yang memproses hasil kueri memerlukan nilai berjenis primitif, dan Anda ingin memfilter kasus di mana properti tidak primitif.
Sintaks
IS_PRIMITIVE(<property>)
Argumen
<property>
, properti untuk memeriksa apakah itu jenis primitif.
Mengembalikan
Nilai Boolean yang menunjukkan apakah jenis properti yang ditentukan adalah salah satu jenis primitif (string, Boolean, numerik, atau null
).
Contoh
Kueri berikut mengembalikan area
properti Pabrik dengan ID 'ABC,' hanya jika area
properti berjenis primitif. Untuk informasi selengkapnya tentang memproyeksikan kolom tertentu dalam hasil kueri (seperti yang dilakukan kueri ini area
), lihat referensi bahasa kueri Azure Digital Twins: Klausa PILIH.
SELECT Factory.area
FROM DIGITALTWINS Factory
WHERE Factory.$dtId = 'ABC'
AND IS_PRIMITIVE(Factory.area)
IS_STRING
Fungsi pemeriksaan jenis untuk menentukan apakah properti memiliki nilai string.
Fungsi ini sering dikombinasikan dengan predikat lain jika program yang memproses hasil kueri memerlukan nilai string, dan Anda ingin memfilter kasus di mana properti bukan string.
Sintaks
IS_STRING(<property>)
Argumen
<property>
, properti untuk memeriksa apakah itu string.
Mengembalikan
Nilai Boolean yang mengindikasikan apakah jenis ekspresi yang ditentukan merupakan suatu untai (karakter).
Contoh
Kueri berikut memilih kembar digital yang memiliki properti string Status
dan nilainya tidak sama dengan Completed
.
SELECT *
FROM DIGITIALTWINS
WHERE IS_STRING( Status ) AND Status != 'Completed'
STARTSWITH
Fungsi string untuk menentukan apakah properti string kembar dimulai dengan string tertentu lainnya.
Sintaks
STARTSWITH(<string-to-check>,<beginning-string>)
Argumen
-
<string-to-check>
: Properti kembar jenis string yang ingin Anda periksa awal -
<beginning-string>
: Untai (karakter) yang mewakili awalan untuk diperiksa
Mengembalikan
Nilai Boolean yang menunjukkan apakah ekspresi string pertama dimulai dengan yang kedua.
Contoh
Kueri berikut mengembalikan semua kembar digital yang ID-nya dimulai denganarea1-
. String yang akan diperiksa adalah dari setiap kembar $dtId
dalam koleksi, dan string awal adalah area1-
.
SELECT *
FROM DIGITALTWINS T
WHERE STARTSWITH(T.$dtId, 'area1-')