ORDER BY (consulta NoSQL)
SE APLICA A: NoSQL
La cláusula opcional ORDER BY
especifica el criterio de ordenación para los resultados que devuelve la consulta.
Sintaxis
ORDER BY <sort_specification>
<sort_specification> ::= <sort_expression> [, <sort_expression>]
<sort_expression> ::= {<scalar_expression> [ASC | DESC]} [ ,...n ]
Argumentos
Descripción | |
---|---|
<sort_specification> |
Especifica una propiedad o una expresión para ordenar el conjunto de resultados de la consulta. Se puede especificar una columna de ordenación como alias de nombre o de propiedad. Se pueden especificar varias propiedades. Los nombres de propiedad deben ser únicos. La secuencia de las propiedades de ordenación en la cláusula ORDER BY define la organización del conjunto de resultados ordenado. Es decir, el conjunto de resultados se ordena en función de la primera propiedad, esa lista ordenada se ordena en función de la segunda propiedad y así sucesivamente. Los nombres de propiedad indicados en la cláusula ORDER BY deben corresponderse con una propiedad de la lista seleccionada o con una que se defina en la colección que se especifique en la cláusula FROM sin ambigüedades. |
<sort_expression> |
Especifica una o más propiedades o expresiones para ordenar el conjunto de resultados de la consulta. |
<scalar_expression> |
Expresión que representa el valor que hay que calcular. |
ASC o DESC |
Indica que los valores de la columna especificada se deben ordenar en sentido ascendente o descendente. ASC ordena del valor mínimo al valor máximo. DESC ordena del valor máximo al valor mínimo. Si no se especifica este argumento, ASC (ascendente) es el criterio de ordenación predeterminado. Los valores null se tratan como los valores más bajos posibles. |
Nota
Para obtener más información sobre las expresiones escalares, consulte expresiones escalares
Ejemplos
Para los ejemplos de esta sección, se usa este conjunto de referencias de elementos. Cada elemento contiene una propiedad name
con subpropiedades first
y 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"
}
]
En este primer ejemplo, la cláusula ORDER BY
se usa para ordenar un campo por el criterio de ordenación predeterminado, 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"
}
]
En este ejemplo siguiente, el criterio de ordenación se especifica explícitamente para que sea descendente.
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"
}
]
En este ejemplo final, los elementos se ordenan mediante dos campos, en un orden específico mediante la ordenación especificada explícitamente. Una consulta que ordena mediante el uso de dos o más campos requiere un índice compuesto.
SELECT VALUE {
firstName: e.name.first,
lastName: e.name.last
}
FROM
employees e
ORDER BY
e.name.last DESC,
e.name.first ASC
Observaciones
- Las consultas con
ORDER BY
devuelven todos los elementos, incluidos los elementos en los que la propiedad de la cláusula ORDER BY no está definida. Generalmente, no se puede controlar el orden en el que aparecen los distintos tipos deundefined
en los resultados. Para controlar el criterio de ordenación de valores no definidos, asigne a cualquier propiedadundefined
un valor arbitrario para asegurarse de que se ordenan antes o después de los valores definidos. - La cláusula
ORDER BY
exige que la directiva de indexación incluya un índice de los campos que se van a ordenar. El tiempo de ejecución de consulta admite la ordenación con un nombre de propiedad o propiedades calculadas. El entorno de ejecución también admite varias propiedadesORDER BY
. Para ejecutar una consulta con varias propiedadesORDER BY
, defina un índice compuesto en los campos que se ordenan. - Si las propiedades que se van a ordenar pueden ser
undefined
en algunos elementos y quiere recuperarlos en una consultaORDER BY
, debe incluir esta ruta de acceso de forma explícita en el índice. La directiva de indexación predeterminada no permite la recuperación de los elementos en los que la propiedad de ordenación esundefined
.