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

Kembali

Nilai Boolean yang menunjukkan apakah array berisi nilai yang ditentukan.

Contoh

Kueri berikut mengembalikan nama semua kembar digital yang memiliki properti floor_numberarray , 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'
  • 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)
  • ARRAY_CONTAINS() tidak didukung pada properti hubungan.
    • Misalnya, katakanlah Floor.Contains adalah hubungan dari Lantai ke Kamar dan memiliki lift 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").
  • ARRAY_CONTAINS() tidak mencari di dalam array berlapis.
    • Misalnya, katakanlah kembar memiliki tags properti dengan nilai [1, [2,3], 3, 4]. Pencarian untuk 2 menggunakan kueri SELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, 2) mengembalikan False. Pencarian nilai di array tingkat atas, seperti 1 menggunakan kueri SELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, 1), mengembalikan True.
  • ARRAY_CONTAINS() tidak didukung jika array berisi objek.
    • Misalnya, katakanlah kembar memiliki tags properti dengan nilai [Room1, Room2] di mana Room1 dan Room2 merupakan objek. Kueri seperti ini tidak didukung: SELECT * FROM DIGITALTWINS WHERE ARRAY_CONTAINS(tags, Room2).

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

Kembali

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

Kembali

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.

Kembali

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.

Kembali

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.

Kembali

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.

Kembali

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.

Kembali

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 TemperatureReadinganak .

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 saat JOIN digunakan).
  • exact: Membutuhkan kecocokan yang tepat. Jika parameter ini tidak diatur, kumpulan hasil menyertakan kembar dengan model yang mewarisi dari model yang ditentukan.

Kembali

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.

Kembali

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.

Kembali

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

Kembali

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