ORDER BY (NoSQL-Abfrage)
GILT FÜR: NoSQL
Die optionale ORDER BY
-Klausel gibt die Sortierreihenfolge für die von der Abfrage zurückgegebenen Ergebnisse an.
Syntax
ORDER BY <sort_specification>
<sort_specification> ::= <sort_expression> [, <sort_expression>]
<sort_expression> ::= {<scalar_expression> [ASC | DESC]} [ ,...n ]
Argumente
Beschreibung | |
---|---|
<sort_specification> |
Gibt eine Eigenschaft oder einen Ausdruck an, wonach das Resultset der Abfrage sortiert werden soll. Eine Sortierspalte kann als Name oder Eigenschaftenalias angegeben werden. Mehrere Eigenschaften können angegeben werden. Namen von Eigenschaften müssen eindeutig sein. Die Sequenz der Sortiereigenschaften in der ORDER BY -Klausel definiert die Anordnung des sortierten Resultsets. Dies bedeutet: Das Resultset wird nach der ersten Eigenschaft sortiert, und dann wird diese sortierte Liste nach der zweiten Eigenschaft sortiert usw. Die Eigenschaftennamen, auf die in der ORDER BY -Klausel verwiesen wird, müssen entweder einer Eigenschaft in der Auswahlliste oder einer Eigenschaft entsprechen, die in der Sammlung definiert ist, die in der FROM -Klausel eindeutig angegeben ist. |
<sort_expression> |
Hiermit wird mindestens eine Eigenschaft oder ein Ausdruck festgelegt, nach dem die Abfrageergebnisse sortiert werden. |
<scalar_expression> |
Ausdruck, der den zu berechnenden Wert darstellt. |
ASC oder DESC |
Gibt an, dass die Werte in der angegebenen Spalte in aufsteigender oder absteigender Reihenfolge sortiert werden sollen. ASC sortiert vom niedrigsten Wert zum höchsten Wert. DESC sortiert vom höchsten Wert zum niedrigsten Wert. Wenn dieses Argument nicht angegeben wird, ist ASC (aufsteigend) die Standardsortierreihenfolge. null -Werte werden als die niedrigsten möglichen Werte behandelt. |
Hinweis
Weitere Informationen zu Skalarausdrücken finden Sie unter Skalarausdrücke.
Beispiele
Für die Beispiele in diesem Abschnitt wird dieser Verweissatz von Elementen verwendet. Jedes Element enthält eine name
-Eigenschaft mit first
- und last
-Untereigenschaften.
[
{
"name": {
"first": "Casey",
"last": "Jensen"
},
"team": "Human resources"
},
{
"name": {
"first": "Amari",
"last": "Rivera"
},
"team": "Human resources"
},
{
"name": {
"first": "Kayla",
"last": "Lewis"
},
"team": "Human resources"
}
]
In diesem ersten Beispiel wird die ORDER BY
-Klausel verwendet, um ein Feld nach der Standardsortierreihenfolge (aufsteigend) zu sortieren.
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"
}
]
In diesem nächsten Beispiel wird die Sortierreihenfolge explizit als „absteigend“ angegeben.
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"
}
]
In diesem letzten Beispiel werden die Elemente anhand von zwei Feldern sortiert – in einer bestimmten Reihenfolge mit explizit angegebener Sortierung. Eine Abfrage, die mithilfe von zwei oder mehr Feldern sortiert wird, erfordert einen zusammengesetzten Index.
SELECT VALUE {
firstName: e.name.first,
lastName: e.name.last
}
FROM
employees e
ORDER BY
e.name.last DESC,
e.name.first ASC
Hinweise
- Abfragen mit
ORDER BY
geben alle Elemente zurück – einschließlich Elementen, bei denen die Eigenschaft in der ORDER BY-Klausel nicht definiert wurde. Normalerweise können Sie nicht steuern, in welcher Reihenfolgeundefined
(nicht definierte) Typen in den Ergebnissen angezeigt werden. Zum Steuern der Sortierreihenfolge von nicht definierten Werten weisen Sie allenundefined
-Eigenschaften einen beliebigen Wert zu, um sicherzustellen, dass sie entweder vor oder nach den definierten Werten sortiert werden. - Die
ORDER BY
-Klausel erfordert es, dass die Indizierungsrichtlinie einen Index für die Felder enthält, die sortiert werden. Die Abfragelaufzeit unterstützt die Sortierung nach einem Eigenschaftsnamen oder nach berechneten Eigenschaften. Die Laufzeit unterstützt auch mehrereORDER BY
-Eigenschaften. Definieren Sie zum Ausführen einer Abfrage mit mehrerenORDER BY
-Eigenschaften einen zusammengesetzten Index für die Felder, die sortiert werden. - Wenn die Eigenschaften, die sortiert werden, bei einigen Elementen möglicherweise
undefined
(nicht definiert ) lauten und Sie sie mit einerORDER BY
-Abfrage abrufen möchten, müssen Sie diesen Pfad in den Index explizit einbeziehen. Die Standardindizierungsrichtlinie lässt das Abrufen der Elemente, in denen die Sortierungseigenschaftundefined
lautet, nicht zu.