Referensi bahasa kueri Azure Digital Twins: klausa SELECT
Dokumen ini berisi informasi referensi tentang klausul SELECT untuk bahasa kueri Azure Digital Twins.
Klausa SELECT adalah bagian pertama dari kueri. Ini menentukan daftar kolom yang akan dikembalikan oleh kueri.
Klausa ini diperlukan untuk semua kueri.
PILIH *
Gunakan karakter *
dalam pernyataan pilih untuk memproyeksikan dokumen kembar digital apa adanya, tanpa menetapkannya ke properti di tataan hasil.
Catatan
SELECT *
hanya sintaksis yang valid bila kueri tidak menggunakan JOIN
. Untuk informasi selengkapnya tentang kueri yang menggunakan JOIN
, lihat referensi bahasa kueri Azure Digital Twins: klausa JOIN.
Sintaks
SELECT *
--FROM ...
Mengembalikan
Kumpulan properti yang dikembalikan dari kueri.
Contoh
Kueri berikut mengembalikan semua kembar digital dalam instans.
SELECT *
FROM DIGITALTWINS
Kolom SELECT dengan proyeksi
Anda dapat menggunakan proyeksi dalam klausa SELECT untuk memilih kolom mana yang akan dikembalikan oleh kueri. Anda dapat menentukan koleksi bernama kembar dan hubungan, atau properti kembar dan hubungan.
Proyeksi sekarang didukung untuk properti primitif dan properti kompleks.
Sintaks
Untuk memproyeksikan koleksi:
SELECT <twin-or-relationship-collection>
Untuk memproyeksikan properti:
SELECT <twin-or-relationship-collection>.<property-name>
Mengembalikan
Kumpulan kembar, properti, atau hubungan yang ditentukan dalam proyeksi.
Jika properti yang disertakan dalam proyeksi tidak ada untuk baris data tertentu, properti tersebut juga tidak akan ada dalam tataan hasil. Untuk contoh perilaku ini, lihat Contoh properti proyek: Properti tidak ada untuk baris data.
Contoh
Contoh skenario
Untuk contoh berikut, perhatikan grafik kembar yang berisi elemen data berikut:
- Kembar pabrik bernama FactoryA
- Berisi properti bernama
name
dengan nilaiFactoryA
- Berisi properti bernama
- Kembar konsumen bernama Contoso
- Berisi properti bernama
name
dengan nilaiContoso
- Berisi properti bernama
- Hubungan consumerRelationship dari FactoryA ke Contoso, disebut
FactoryA-consumerRelationship-Contoso
- Berisi properti bernama
managedBy
dengan nilaiJeff
- Berisi properti bernama
Berikut adalah diagram yang menggambarkan skenario ini:
Contoh kumpulan proyek
Di bawah ini adalah contoh kueri yang memproyeksikan kumpulan dari grafik ini. Kueri berikut mengembalikan semua kembaran digital dalam instans, dengan menamai seluruh koleksi kembar T
dan memproyeksikan T
sebagai koleksi yang akan dikembalikan.
SELECT T
FROM DIGITALTWINS T
Berikut adalah payload JSON yang dikembalikan dari kueri ini:
{
"value": [
{
"result": [
{
"T": {
"$dtId": "FactoryA",
"$etag": "W/\"d22267a0-fd4f-4f6b-916d-4946a30453c9\"",
"$metadata": {
"$model": "dtmi:contosocom:DigitalTwins:Factory;1",
"name": {
"lastUpdateTime": "2021-04-19T17:15:54.4977151Z"
}
},
"name": "FactoryA"
}
},
{
"T": {
"$dtId": "Contoso",
"$etag": "W/\"a96dc85e-56ae-4061-866b-058a149e03d8\"",
"$metadata": {
"$model": "dtmi:com:contoso:Consumer;1",
"name": {
"lastUpdateTime": "2021-04-19T17:16:30.2154166Z"
}
},
"name": "Contoso"
}
}
]
}
],
"continuationToken": "null"
}
Proyek dengan contoh JOIN
Proyeksi biasanya digunakan untuk mengembalikan koleksi yang ditentukan dalam JOIN
. Kueri berikut menggunakan proyeksi untuk mengembalikan data Konsumen, Pabrik, dan Hubungan. Untuk selengkapnya tentang JOIN
sintaks yang digunakan dalam contoh, lihat referensi bahasa kueri Azure Digital Twins: klausa JOIN.
SELECT Consumer, Factory, Relationship
FROM DIGITALTWINS Factory
JOIN Consumer RELATED Factory.consumerRelationship Relationship
WHERE Factory.$dtId = 'FactoryA'
Berikut adalah payload JSON yang dikembalikan dari kueri ini:
{
"value": [
{
"result": [
{
"Consumer": {
"$dtId": "Contoso",
"$etag": "W/\"a96dc85e-56ae-4061-866b-058a149e03d8\"",
"$metadata": {
"$model": "dtmi:com:contoso:Consumer;1",
"name": {
"lastUpdateTime": "2021-04-19T17:16:30.2154166Z"
}
},
"name": "Contoso"
},
"Factory": {
"$dtId": "FactoryA",
"$etag": "W/\"d22267a0-fd4f-4f6b-916d-4946a30453c9\"",
"$metadata": {
"$model": "dtmi:contosocom:DigitalTwins:Factory;1",
"name": {
"lastUpdateTime": "2021-04-19T17:15:54.4977151Z"
}
},
"name": "FactoryA"
},
"Relationship": {
"$etag": "W/\"f01e07c1-19e4-4bbe-a12d-f5761e86d3e8\"",
"$relationshipId": "FactoryA-consumerRelationship-Contoso",
"$relationshipName": "consumerRelationship",
"$sourceId": "FactoryA",
"$targetId": "Contoso",
"managedBy": "Jeff"
}
}
]
}
],
"continuationToken": "null"
}
Contoh properti proyek
Berikut adalah contoh yang memproyeksikan properti. Kueri berikut menggunakan proyeksi untuk mengembalikan properti name
dari kembaran Konsumen, dan properti managedBy
dari hubungan tersebut.
SELECT Consumer.name, Relationship.managedBy
FROM DIGITALTWINS Factory
JOIN Consumer RELATED Factory.consumerRelationship Relationship
WHERE Factory.$dtId = 'FactoryA'
Berikut adalah payload JSON yang dikembalikan dari kueri ini:
{
"value": [
{
"result": [
{
"managedBy": "Jeff",
"name": "Contoso"
}
]
}
],
"continuationToken": "null"
}
Contoh properti proyek: Properti tidak ada untuk baris data
Jika properti yang disertakan dalam proyeksi tidak ada untuk baris data tertentu, properti tersebut juga tidak akan ada dalam tataan hasil.
Pertimbangkan contoh ini satu set kembar yang mewakili orang. Beberapa dari kembaran memiliki usia yang terkait dengan mereka, tetapi yang lain tidak.
Berikut adalah kueri yang memproyeksikan properti name
dan age
:
SELECT name, age
FROM DIGITALTWINS
Hasilnya mungkin terlihat seperti ini, dengan properti age
hilang dari beberapa kembaran dalam hasil di mana si kembar tidak memiliki properti ini.
{
"value": [
{
"result": [
{
"name": "John",
"age": 27
},
{
"name": "Keanu"
}
]
}
],
"continuationToken": "null"
}
PILIH COUNT
Gunakan metode ini untuk menghitung jumlah item dalam kumpulan hasil dan mengembalikan angka tersebut.
Sintaks
SELECT COUNT()
Argumen
Tidak ada.
Mengembalikan
Sebuah nilai int
.
Contoh
Kueri berikut mengembalikan jumlah semua kembar digital dalam instans.
SELECT COUNT()
FROM DIGITALTWINS
Kueri berikut mengembalikan jumlah semua hubungan dalam instans.
SELECT COUNT()
FROM RELATIONSHIPS
PILIH ATAS
Gunakan metode ini untuk mengembalikan hanya sejumlah item teratas yang memenuhi persyaratan kueri.
Sintaks
SELECT TOP(<number-of-return-items>)
Argumen
Nilai int
yang menentukan jumlah item teratas untuk dipilih.
Mengembalikan
Koleksi anak kembar.
Contoh
Kueri berikut hanya mengembalikan lima kembar digital pertama dalam instans.
SELECT TOP(5)
FROM DIGITALTWINS