Cláusula ORDER BY
La cláusula ORDER BY ordena el conjunto de resultados de una consulta.
Sintaxis
[ ORDER BY expression [ ASC | DESC ] ] [ NULLS FIRST | NULLS LAST ] [ LIMIT { count | ALL } ] [ OFFSET start ]
Parámetros
- expression
-
Expresión que define el orden del conjunto de resultados de la consulta, por lo general al especificar una o más columnas en la lista de selección. Los resultados se devuelven en función de la ordenación UTF-8 binaria. También puede especificar lo siguiente:
-
Columnas que no estén en la lista de selección
-
Expresiones formadas por una o más columnas que existen en las tablas a las que la consulta hace referencia
-
Números ordinales que representan la posición de las entradas de la lista de selección (o la posición de columnas en la tabla si no existe una lista de selección)
-
Alias que definen las entradas de la lista de selección
Cuando la cláusula ORDER BY contiene varias expresiones, el conjunto de resultados se ordena según la primera expresión, luego se aplica la segunda expresión a las filas que tienen valores coincidentes de la primera expresión, etc.
-
- ASC | DESC
-
Opción que define el orden de ordenación para la expresión, de la siguiente manera:
-
ASC: ascendente (por ejemplo, de menor a mayor para valores numéricos y de la A a la Z para cadenas con caracteres). Si no se especifica ninguna opción, los datos se ordenan, de manera predeterminada, en orden ascendente.
-
DESC: descendente (de mayor a menor para valores numéricos y de la Z a la A para cadenas).
-
- NULLS FIRST | NULLS LAST
-
Opción que especifica si los valores NULL se deben ordenar en primer lugar, antes de los valores no nulos, o al final, después de los valores no nulos. De manera predeterminada, los valores NULL se ordenan y clasificación al final en orden ASC, y se ordenan y se clasifican primero en orden DESC.
- LIMIT number (número) | ALL
-
Opción que controla la cantidad de filas ordenadas que una consulta devuelve. El número LIMIT deber ser un entero positivo; el valor máximo es
2147483647
.LIMIT 0 no devuelve filas. Puede usar la sintaxis para realizar pruebas: para verificar que una consulta se ejecuta (sin mostrar filas) o para devolver una lista de columnas de una tabla. Una cláusula ORDER BY es redundante si está utilizando LIMIT 0 para devolver una lista de columnas. El predeterminado es LIMIT ALL.
- OFFSET start (inicio)
-
Opción que especifica que se omita el número de filas que hay delante de start (inicio) antes de comenzar a devolver filas. El número OFFSET deber ser un entero positivo; el valor máximo es
2147483647
. Cuando se utiliza con la opción LIMIT, las filas OFFSET se omiten antes de comenzar a contar las filas LIMIT que se devuelven. Si no se utiliza la opción LIMIT, la cantidad de filas del conjunto de resultados se reduce por la cantidad de filas que se omiten. Las filas omitidas por una cláusula OFFSET aún deben analizarse, por lo que puede ser ineficiente utilizar un valor OFFSET grande.
Notas de uso
Tenga en cuenta el siguiente comportamiento esperado con las cláusulas ORDER BY:
-
Los valores NULL son considerados "superiores" a todos los otros valores. Con el orden ascendente predeterminado, los valores NULL se ordenan al final. Para cambiar este comportamiento, utilice la opción NULLS FIRST.
-
Cuando una consulta no contiene una cláusula ORDER BY, el sistema devuelve conjuntos de resultados sin un orden predecible de las filas. Si se ejecuta la misma consulta dos veces, puede devolver el conjunto de resultados en un orden diferente.
-
Las opciones LIMIT y OFFSET pueden utilizarse sin una cláusula ORDER BY; no obstante, para devolver un conjunto consistente de filas, use estas opciones junto con ORDER BY.
-
En cualquier sistema paralelo como Amazon Redshift, cuando una cláusula ORDER BY no produce un solo orden, el orden de las filas no es determinístico Es decir, si la expresión ORDER BY produce valores duplicados, el orden devuelto de esas filas puede variar de otros sistemas o de una ejecución de Amazon Redshift a la siguiente.
-
Amazon Redshift no admite literales de cadena en cláusulas ORDER BY.