ORDER BY (zapytanie NoSQL)
DOTYCZY: NoSQL
Klauzula opcjonalna ORDER BY
określa kolejność sortowania wyników zwracanych przez zapytanie.
Składnia
ORDER BY <sort_specification>
<sort_specification> ::= <sort_expression> [, <sort_expression>]
<sort_expression> ::= {<scalar_expression> [ASC | DESC]} [ ,...n ]
Argumenty
opis | |
---|---|
<sort_specification> |
Określa właściwość lub wyrażenie, na którym ma być sortowane zestaw wyników zapytania. Kolumnę sortowania można określić jako nazwę lub alias właściwości. Można określić wiele właściwości. Nazwy właściwości muszą być unikatowe. Sekwencja właściwości sortowania w klauzuli ORDER BY definiuje organizację posortowanego zestawu wyników. Oznacza to, że zestaw wyników jest sortowany według pierwszej właściwości, a następnie uporządkowana lista jest sortowana według drugiej właściwości itd. Nazwy właściwości, do których odwołuje się ORDER BY klauzula , muszą odpowiadać właściwości na liście select lub właściwości zdefiniowanej w kolekcji określonej w FROM klauzuli bez żadnych niejednoznaczności. |
<sort_expression> |
Określa co najmniej jedną właściwość lub wyrażenia, na których ma być sortowane zestaw wyników zapytania. |
<scalar_expression> |
Wyrażenie reprezentujące wartość do obliczenia. |
ASC lub DESC |
Określa, że wartości w określonej kolumnie powinny być sortowane w kolejności rosnącej lub malejącej. ASC sortuje od najniższej wartości do najwyższej wartości. DESC sortuje od najwyższej wartości do najniższej wartości. Jeśli ten argument nie jest określony, ASC (rosnąco) jest domyślną kolejnością sortowania. null wartości są traktowane jako najniższe możliwe wartości. |
Uwaga
Aby uzyskać więcej informacji na temat wyrażeń skalarnych, zobacz wyrażenia skalarne
Przykłady
W przykładach w tej sekcji jest używany ten zestaw odwołań elementów. Każdy element zawiera name
właściwość z właściwościami podrzędnymi first
i .last
[
{
"name": {
"first": "Casey",
"last": "Jensen"
},
"team": "Human resources"
},
{
"name": {
"first": "Amari",
"last": "Rivera"
},
"team": "Human resources"
},
{
"name": {
"first": "Kayla",
"last": "Lewis"
},
"team": "Human resources"
}
]
W tym pierwszym przykładzie klauzula ORDER BY
jest używana do sortowania pola według domyślnej kolejności sortowania, rosnąco.
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"
}
]
W następnym przykładzie kolejność sortowania jest jawnie określona jako malejąco.
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"
}
]
W tym ostatnim przykładzie elementy są sortowane przy użyciu dwóch pól w określonej kolejności przy użyciu jawnie określonej kolejności. Zapytanie sortujące przy użyciu co najmniej dwóch pól wymaga indeksu złożonego.
SELECT VALUE {
firstName: e.name.first,
lastName: e.name.last
}
FROM
employees e
ORDER BY
e.name.last DESC,
e.name.first ASC
Uwagi
- Zapytania z zwracanymi wszystkimi elementami, w tym elementami
ORDER BY
, w których właściwość klauzuli ORDER BY nie jest zdefiniowana. Zazwyczaj nie można kontrolować kolejności wyświetlania różnychundefined
typów w wynikach. Aby kontrolować kolejność sortowania niezdefiniowanych wartości, przypisz wszelkieundefined
właściwości dowolną wartość, aby upewnić się, że sortują je przed zdefiniowanymi wartościami lub po nich. - Klauzula
ORDER BY
wymaga, aby zasady indeksowania zawierały indeks dla posortowanych pól. Środowisko uruchomieniowe zapytania obsługuje sortowanie względem nazwy właściwości lub obliczonych właściwości. Środowisko uruchomieniowe obsługuje również wieleORDER BY
właściwości. Aby uruchomić zapytanie z wielomaORDER BY
właściwościami, zdefiniuj indeks złożony dla posortowanych pól. - Jeśli posortowane właściwości mogą dotyczyć
undefined
niektórych elementów i chcesz je pobrać wORDER BY
zapytaniu, musisz jawnie dołączyć tę ścieżkę do indeksu. Domyślne zasady indeksowania nie zezwalają na pobieranie elementów, w których właściwość sortowania toundefined
.