ORDER BY (kueri NoSQL)
BERLAKU UNTUK: NoSQL
Klausul ORDER BY
opsional menentukan urutan pengurutan untuk hasil yang dikembalikan oleh kueri.
Sintaks
ORDER BY <sort_specification>
<sort_specification> ::= <sort_expression> [, <sort_expression>]
<sort_expression> ::= {<scalar_expression> [ASC | DESC]} [ ,...n ]
Argumen
Deskripsi | |
---|---|
<sort_specification> |
Menentukan properti atau ekspresi tempat mengurutkan kumpulan hasil kueri. Kolom pengurutan dapat ditentukan sebagai alias nama atau alias properti. Beberapa properti dapat ditentukan. Nama properti harus unik. Urutan properti pengurutan dalam klausul ORDER BY menentukan organisasi dari rangkaian hasil yang diurutkan. Artinya, kumpulan hasil diurutkan menurut properti pertama dan kemudian daftar yang diurutkan dipilah menurut properti kedua, dan seterusnya. Nama properti yang direferensikan dalam ORDER BY klausul harus sesuai dengan properti dalam daftar pilih atau properti yang ditentukan dalam kumpulan yang ditentukan dalam FROM klausul tanpa ambiguitas apa pun. |
<sort_expression> |
Menentukan satu atau beberapa properti atau ekspresi untuk mengurutkan kumpulan hasil kueri. |
<scalar_expression> |
Ekspresi yang mewakili nilai yang akan dikomputasi. |
ASC atau DESC |
Menentukan bahwa nilai dalam kolom tertentu harus diurutkan dalam urutan naik atau turun. ASC mengurutkan dari nilai terendah ke nilai tertinggi. DESC mengurutkan dari nilai tertinggi ke nilai terendah. Jika argumen ini tidak ditentukan, ASC (naik) adalah urutan pengurutan default. null nilai diperlakukan sebagai nilai serendah mungkin. |
Catatan
Untuk informasi selengkapnya tentang ekspresi skalar, lihat ekspresi skalar
Contoh
Untuk contoh di bagian ini, kumpulan referensi item ini digunakan. Setiap item berisi name
properti dengan first
dan last
subproperti.
[
{
"name": {
"first": "Casey",
"last": "Jensen"
},
"team": "Human resources"
},
{
"name": {
"first": "Amari",
"last": "Rivera"
},
"team": "Human resources"
},
{
"name": {
"first": "Kayla",
"last": "Lewis"
},
"team": "Human resources"
}
]
Dalam contoh pertama ini, ORDER BY
klausa digunakan untuk mengurutkan bidang menurut urutan pengurutan default, naik.
SELECT VALUE {
firstName: e.name.first,
lastName: e.name.last
}
FROM
employees e
ORDER BY
e.name.last
[
{
"firstName": "Casey",
"lastName": "Jensen"
},
{
"firstName": "Kayla",
"lastName": "Lewis"
},
{
"firstName": "Amari",
"lastName": "Rivera"
}
]
Dalam contoh berikutnya ini, urutan pengurutan secara eksplisit ditentukan untuk turun.
SELECT VALUE {
firstName: e.name.first,
lastName: e.name.last
}
FROM
employees e
ORDER BY
e.name.last DESC
[
{
"firstName": "Amari",
"lastName": "Rivera"
},
{
"firstName": "Kayla",
"lastName": "Lewis"
},
{
"firstName": "Casey",
"lastName": "Jensen"
}
]
Dalam contoh akhir ini, item diurutkan menggunakan dua bidang, dalam urutan tertentu menggunakan pengurutan yang ditentukan secara eksplisit. Kueri yang mengurutkan menggunakan dua bidang atau lebih memerlukan indeks komposit.
SELECT VALUE {
firstName: e.name.first,
lastName: e.name.last
}
FROM
employees e
ORDER BY
e.name.last DESC,
e.name.first ASC
Keterangan
- Kueri dengan
ORDER BY
mengembalikan semua item, termasuk item di mana properti dalam klausa ORDER BY tidak ditentukan. Biasanya, Anda tidak dapat mengontrol urutan yang muncul dalam hasil yang berbedaundefined
. Untuk mengontrol urutan pengurutan nilai yang tidak terdefinisi, tetapkan properti apa punundefined
nilai arbitrer untuk memastikannya mengurutkan baik sebelum atau sesudah nilai yang ditentukan. - Klausa
ORDER BY
mengharuskan kebijakan pengindeksan menyertakan indeks untuk bidang yang sedang diurutkan. Runtime kueri mendukung pengurutan terhadap nama properti atau properti komputasi. Runtime juga mendukung beberapaORDER BY
properti. Untuk menjalankan kueri dengan beberapaORDER BY
properti, tentukan indeks komposit pada bidang yang sedang diurutkan. - Jika properti yang sedang diurutkan mungkin
undefined
untuk beberapa item dan Anda ingin mengambilnya dalamORDER BY
kueri, Anda harus secara eksplisit menyertakan jalur ini dalam indeks. Kebijakan pengindeksan default tidak memungkinkan pengambilan item tempat properti pengurutan adalahundefined
.