Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
APPLIES TO:
NoSQL
The optional ORDER BY clause specifies the sorting order for results returned by the query.
Syntax
ORDER BY <sort_specification>
<sort_specification> ::= <sort_expression> [, <sort_expression>]
<sort_expression> ::= {<scalar_expression> [ASC | DESC]} [ ,...n ]
Arguments
| Description | |
|---|---|
<sort_specification> |
Specifies a property or expression on which to sort the query result set. A sort column can be specified as a name or property alias. Multiple properties can be specified. Property names must be unique. The sequence of the sort properties in the ORDER BY clause defines the organization of the sorted result set. That is, the result set is sorted by the first property and then that ordered list is sorted by the second property, and so on. The property names referenced in the ORDER BY clause must correspond to either a property in the select list or to a property defined in the collection specified in the FROM clause without any ambiguities. |
<sort_expression> |
Specifies one or more properties or expressions on which to sort the query result set. |
<scalar_expression> |
Expression representing the value to be computed. |
ASC or DESC |
Specifies that the values in the specified column should be sorted in ascending or descending order. ASC sorts from the lowest value to highest value. DESC sorts from highest value to lowest value. If this argument isn't specified, ASC (ascending) is the default sort order. null values are treated as the lowest possible values. |
Note
For more information on scalar expressions, see scalar expressions
Examples
For the examples in this section, this reference set of items is used. Each item contains a name property with first and last subproperties.
[
{
"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 this first example, the ORDER BY clause is used to sort a field by the default sort order, ascending.
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 this next example, the sort order is explicitly specified to be descending.
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 this final example, the items are sorted using two fields, in a specific order using explicitly specified ordering. A query that sorts using two or more fields requires a composite index.
SELECT VALUE {
firstName: e.name.first,
lastName: e.name.last
}
FROM
employees e
ORDER BY
e.name.last DESC,
e.name.first ASC
Remarks
- Queries with
ORDER BYreturn all items, including items where the property in the ORDER BY clause isn't defined. Typically, you can't control the order that differentundefinedtypes appear in the results. To control the sort order of undefined values, assign anyundefinedproperties an arbitrary value to ensure they sort either before or after the defined values. - The
ORDER BYclause requires that the indexing policy includes an index for the fields being sorted. The query runtime supports sorting against a property name or computed properties. The runtime also supports multipleORDER BYproperties. In order to run a query with multipleORDER BYproperties, define a composite index on the fields being sorted. - If the properties being sorted might be
undefinedfor some items and you want to retrieve them in anORDER BYquery, you must explicitly include this path in the index. The default indexing policy doesn't allow for the retrieval of the items where the sort property isundefined.