ORDER BY (consulta NoSQL)
APLICA-SE A: NoSQL
A cláusula opcional ORDER BY
especifica a ordem de classificação dos resultados retornados pela consulta.
Sintaxe
ORDER BY <sort_specification>
<sort_specification> ::= <sort_expression> [, <sort_expression>]
<sort_expression> ::= {<scalar_expression> [ASC | DESC]} [ ,...n ]
Argumentos
Description | |
---|---|
<sort_specification> |
Especifica uma propriedade ou expressão na qual classificar o conjunto de resultados da consulta. Uma coluna de classificação pode ser especificada como um nome ou alias de propriedade. Várias propriedades podem ser especificadas. Os nomes das propriedades devem ser exclusivos. A sequência das propriedades de classificação na ORDER BY cláusula define a organização do conjunto de resultados classificados. Ou seja, o conjunto de resultados é classificado pela primeira propriedade e, em seguida, essa lista ordenada é classificada pela segunda propriedade, e assim por diante. Os nomes de ORDER BY propriedade mencionados na cláusula devem corresponder a uma propriedade na lista de seleção ou a uma propriedade definida na coleção especificada na FROM cláusula sem quaisquer ambiguidades. |
<sort_expression> |
Especifica uma ou mais propriedades ou expressões nas quais classificar o conjunto de resultados da consulta. |
<scalar_expression> |
Expressão que representa o valor a ser calculado. |
ASC ou DESC |
Especifica que os valores na coluna especificada devem ser classificados em ordem crescente ou decrescente. ASC classifica do menor valor para o maior valor. DESC classifica do valor mais alto para o valor mais baixo. Se esse argumento não for especificado, ASC (crescente) será a ordem de classificação padrão. null são tratados como os valores mais baixos possíveis. |
Nota
Para obter mais informações sobre expressões escalares, consulte expressões escalares
Exemplos
Para os exemplos nesta seção, este conjunto de referência de itens é usado. Cada item contém uma name
propriedade com first
e last
subpropriedades.
[
{
"name": {
"first": "Casey",
"last": "Jensen"
},
"team": "Human resources"
},
{
"name": {
"first": "Amari",
"last": "Rivera"
},
"team": "Human resources"
},
{
"name": {
"first": "Kayla",
"last": "Lewis"
},
"team": "Human resources"
}
]
Neste primeiro exemplo, a ORDER BY
cláusula é usada para classificar um campo pela ordem de classificação padrão, ascendente.
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"
}
]
Neste próximo exemplo, a ordem de classificação é explicitamente especificada como decrescente.
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"
}
]
Neste exemplo final, os itens são classificados usando dois campos, em uma ordem específica, usando ordenação explicitamente especificada. Uma consulta que classifica usando dois ou mais campos requer um índice composto.
SELECT VALUE {
firstName: e.name.first,
lastName: e.name.last
}
FROM
employees e
ORDER BY
e.name.last DESC,
e.name.first ASC
Observações
- Consultas com
ORDER BY
devolução de todos os itens, incluindo itens em que a propriedade na cláusula ORDER BY não está definida. Normalmente, não é possível controlar a ordem em que diferentesundefined
tipos aparecem nos resultados. Para controlar a ordem de classificação de valores indefinidos, atribua a quaisquerundefined
propriedades um valor arbitrário para garantir que elas sejam classificadas antes ou depois dos valores definidos. - A
ORDER BY
cláusula exige que a política de indexação inclua um índice para os campos que estão sendo classificados. O tempo de execução da consulta oferece suporte à classificação em relação a um nome de propriedade ou propriedades computadas. O tempo de execução também suporta váriasORDER BY
propriedades. Para executar uma consulta com váriasORDER BY
propriedades, defina um índice composto nos campos que estão sendo classificados. - Se as propriedades que estão sendo classificadas podem ser
undefined
para alguns itens e você deseja recuperá-los em umaORDER BY
consulta, você deve incluir explicitamente esse caminho no índice. A política de indexação padrão não permite a recuperação dos itens em que a propriedade sort éundefined
.