ORDER BY (NoSQL-lekérdezés)
A KÖVETKEZŐRE VONATKOZIK: NoSQL
Az opcionális ORDER BY
záradék megadja a lekérdezés által visszaadott eredmények rendezési sorrendjét.
Syntax
ORDER BY <sort_specification>
<sort_specification> ::= <sort_expression> [, <sort_expression>]
<sort_expression> ::= {<scalar_expression> [ASC | DESC]} [ ,...n ]
Argumentumok
Leírás | |
---|---|
<sort_specification> |
Megadja azt a tulajdonságot vagy kifejezést, amelyen rendezni szeretné a lekérdezés eredményhalmazát. A rendezési oszlop megadható névként vagy tulajdonságaliasként. Több tulajdonság is megadható. A tulajdonságneveknek egyedinek kell lenniük. A záradék rendezési ORDER BY tulajdonságainak sorrendje határozza meg a rendezett eredményhalmaz szervezetét. Ez azt jelenti, hogy az eredményhalmazt az első tulajdonság rendezi, majd a rendezett listát a második tulajdonság rendezi, és így tovább. A záradékban ORDER BY hivatkozott tulajdonságneveknek kétértelműség nélkül meg kell felelnie a kiválasztási listában szereplő tulajdonságnak vagy a záradékban megadott gyűjteményben FROM meghatározott tulajdonságnak. |
<sort_expression> |
Egy vagy több tulajdonságot vagy kifejezést határoz meg, amelyek alapján rendezheti a lekérdezés eredményhalmazát. |
<scalar_expression> |
A kiszámítandó értéket képviselő kifejezés. |
ASC vagy DESC |
Megadja, hogy a megadott oszlop értékeit növekvő vagy csökkenő sorrendbe kell rendezni. ASC rendezés a legalacsonyabb értékről a legmagasabb értékre. DESC rendezés a legmagasabb értékről a legalacsonyabb értékre. Ha ez az argumentum nincs megadva, ASC (növekvő) az alapértelmezett rendezési sorrend. null értékeket a rendszer a lehető legalacsonyabb értékként kezeli. |
Feljegyzés
További információ a skaláris kifejezésekről: skaláris kifejezések
Példák
Az ebben a szakaszban szereplő példák esetében ez a referenciaelem-készlet használatos. Minden elem tartalmaz egy tulajdonságot first
és last
altulajdonságokatname
.
[
{
"name": {
"first": "Casey",
"last": "Jensen"
},
"team": "Human resources"
},
{
"name": {
"first": "Amari",
"last": "Rivera"
},
"team": "Human resources"
},
{
"name": {
"first": "Kayla",
"last": "Lewis"
},
"team": "Human resources"
}
]
Ebben az első példában a ORDER BY
záradék egy mezőt az alapértelmezett rendezési sorrend szerint, növekvő sorrendben rendez.
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"
}
]
Ebben a következő példában a rendezési sorrend kifejezetten csökkenő sorrendben van megadva.
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"
}
]
Ebben az utolsó példában az elemek két mezővel vannak rendezve, egy adott sorrendben, explicit módon megadott sorrendben. A két vagy több mezőt használó lekérdezésekhez összetett indexre van szükség.
SELECT VALUE {
firstName: e.name.first,
lastName: e.name.last
}
FROM
employees e
ORDER BY
e.name.last DESC,
e.name.first ASC
Megjegyzések
- Az összes elemet visszaadó
ORDER BY
lekérdezések, beleértve azokat az elemeket is, amelyekben nincs definiálva az ORDER BY záradék tulajdonsága. Általában nem szabályozható, hogy a különbözőundefined
típusok milyen sorrendben jelenjenek meg az eredményekben. A nem definiált értékek rendezési sorrendjének szabályozásához rendeljen tetszőleges értéket aundefined
tulajdonságokhoz, hogy azok a megadott értékek előtt vagy után rendezhetők legyenek. - A
ORDER BY
záradék megköveteli, hogy az indexelési szabályzat tartalmazza a rendezendő mezők indexét. A lekérdezési futtatókörnyezet támogatja a tulajdonságnév vagy a számított tulajdonságok szerinti rendezést. A futtatókörnyezet többORDER BY
tulajdonságot is támogat. Ha többORDER BY
tulajdonsággal rendelkező lekérdezést szeretne futtatni, adjon meg egy összetett indexet a rendezendő mezőkön. - Ha a rendezendő tulajdonságok egyes elemekhez tartozhatnak
undefined
, és le szeretné őket kérni egyORDER BY
lekérdezésben, akkor ezt az elérési utat explicit módon be kell foglalnia az indexbe. Az alapértelmezett indexelési szabályzat nem teszi lehetővé a rendezési tulajdonságotundefined
tartalmazó elemek beolvasását.