Udostępnij za pośrednictwem


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óżnych undefined typów w wynikach. Aby kontrolować kolejność sortowania niezdefiniowanych wartości, przypisz wszelkie undefined 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ż wiele ORDER BY właściwości. Aby uruchomić zapytanie z wieloma ORDER 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ć w ORDER 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 to undefined.