Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Klausa SELECT mengidentifikasi bidang untuk dikembalikan dalam hasil kueri. Klausa kemudian memproyeksikan bidang tersebut ke dalam tataan hasil JSON.
Setiap kueri terdiri dari klausul SELECT dan opsional FROM dan WHERE klausul, sesuai standar ANSI SQL. Biasanya, sumber dalam FROM klausul dijumlahkan, dan WHERE klausul menerapkan filter pada sumber untuk mengambil subset item JSON.
Syntax
SELECT <select_specification>
<select_specification> ::=
'*'
| [DISTINCT] <object_property_list>
| [DISTINCT] VALUE <scalar_expression> [[ AS ] value_alias]
<object_property_list> ::=
{ <scalar_expression> [ [ AS ] property_alias ] } [ ,...n ]
Arguments
| Description | |
|---|---|
select_specification |
Properti atau nilai yang akan dipilih untuk kumpulan hasil. |
* |
Menentukan bahwa nilai harus diambil tanpa membuat perubahan apa pun. Secara khusus jika nilai yang diproses adalah objek, semua properti diambil. |
object_property_list |
Menentukan daftar properti yang akan diambil. Setiap nilai yang dikembalikan adalah objek dengan properti yang ditentukan. |
VALUE |
Menentukan bahwa nilai JSON harus diambil alih-alih objek JSON lengkap. Argumen ini, tidak seperti <property_list> tidak membungkus nilai yang diproyeksikan dalam objek. |
DISTINCT |
Menentukan bahwa duplikat properti yang diproyeksikan harus dihapus. |
scalar_expression |
Ekspresi yang mewakili nilai yang akan dihitung. |
Tipe pengembalian
Mengembalikan bidang atau nilai yang diproyeksikan seperti yang ditentukan.
Examples
Bagian ini berisi contoh cara menggunakan konstruksi bahasa kueri ini.
Pilih nilai string statis
Dalam contoh ini, dua nilai string statis dan mengembalikan array dengan satu objek yang berisi kedua nilai. Karena nilai tidak disebutkan namanya, angka berurutan yang dihasilkan digunakan untuk memberi nama bidang json yang setara.
SELECT
"Cosmic", "Works"
[
{
"$1": "Cosmic",
"$2": "Works"
}
]
Bidang proyek
Dalam contoh ini, proyeksi JSON digunakan untuk menyempurnakan struktur dan nama bidang yang tepat untuk objek JSON yang dihasilkan. Di sini, objek JSON dibuat dengan bidang bernama identifier dan model. Objek JSON luar masih tidak disebutkan namanya, sehingga angka yang dihasilkan ($1) digunakan untuk menamai bidang ini.
SELECT {
identifier: p.name,
model: p.sku
}
FROM
products p
[
{
"$1": {
"identifier": "Remdriel Shoes",
"model": "61506"
}
},
{
"$1": {
"identifier": "Tirevy trunks",
"model": "73402"
}
},
...
]
Untai (karakter) statis proyek
Dalam contoh ini, kata kunci VALUE digunakan dengan string statis untuk membuat array string sebagai hasilnya.
SELECT VALUE
"Cosmic Works"
[
"Cosmic Works"
]
Proyeksi kompleks
Dalam contoh ini, kueri menggunakan kombinasi SELECT klausa, VALUE kata kunci, FROM klausa, dan proyeksi JSON untuk melakukan kueri umum dengan hasil yang diubah menjadi objek JSON agar klien dapat mengurai.
SELECT VALUE {
name: p.name,
link: p.metadata.link,
firstTag: p.tags[0]["value"]
}
FROM
products p
[
{
"name": "Remdriel Shoes",
"link": "https://www.adventure-works.com/remdriel-shoes/68719521615.p",
"firstTag": "suede-leather-and-mesh"
},
{
"name": "Tirevy trunks",
"link": "https://www.adventure-works.com/tirevy-trunks/68719520573.p",
"firstTag": "polyester"
},
...
]
Komentar
- Sintaksis
SELECT *hanya valid jikaFROMklausul telah mendeklarasikan tepat satu alias.SELECT *menyediakan proyeksi identitas, yang dapat berguna jika tidak ada proyeksi yang diperlukan.SELECT *hanya valid jikaFROMklausul ditentukan dan hanya memperkenalkan satu sumber input. - Keduanya
SELECT <select_list>danSELECT *merupakan gula sintaktik dan dapat diekspresikan menggunakan pernyataan sederhanaSELECT. - Ekspresi
SELECT * FROM ... AS from_alias ...setara denganSELECT from_alias FROM ... AS from_alias .... - Ekspresi
SELECT <expr1> AS p1, <expr2> AS p2,..., <exprN> AS pN [other clauses...]setara denganSELECT VALUE { p1: <expr1>, p2: <expr2>, ..., pN: <exprN> }[other clauses...].