Ordenar por - Order by

Una ORDER BYcláusula en SQL especifica que una SELECTdeclaración SQL devuelve un conjunto de resultados con las filas ordenadas por los valores de una o más columnas. Los criterios de clasificación no tienen que incluirse en el conjunto de resultados. Los criterios de clasificación pueden ser expresiones, incluidos nombres de columna, funciones definidas por el usuario , operaciones aritméticas o CASEexpresiones. Las expresiones se evalúan y los resultados se utilizan para la clasificación, es decir, los valores almacenados en la columna o los resultados de la llamada a la función.

ORDER BYes la única forma de ordenar las filas en el conjunto de resultados. Sin esta cláusula, el sistema de base de datos relacional puede devolver las filas en cualquier orden. Si se requiere un pedido, se ORDER BYdebe proporcionar en el SELECTestado de cuenta enviado por la aplicación. Aunque algunos sistemas de bases de datos permiten la especificación de una ORDER BYcláusula en subselecciones o definiciones de vista , la presencia no tiene ningún efecto. Una vista es una tabla relacional lógica, y el modelo relacional exige que una tabla sea un conjunto de filas, lo que implica ningún orden de clasificación. La única excepción son las construcciones como ORDER BY ORDER OF ...(no estandarizadas en SQL: 2003 ) que permiten la propagación de criterios de clasificación a través de subselecciones anidadas.

La funcionalidad principal del estándar SQL no define explícitamente un orden de clasificación predeterminado para los nulos . Con la extensión SQL: 2003 T611, "Operaciones OLAP elementales", los nulos se pueden ordenar antes o después de todos los valores de datos utilizando las cláusulas NULLS FIRSTo NULLS LASTde la ORDER BYlista, respectivamente. Sin embargo, no todos los proveedores de DBMS implementan esta funcionalidad. Los proveedores que no implementan esta funcionalidad pueden especificar diferentes tratamientos para la clasificación nula en el DBMS.

La estructura ORDER BY ... DESCse ordenará en orden descendente; de ​​lo contrario, se utilizará el orden ascendente. (Este último puede especificarse explícitamente mediante ASC).

Ejemplos de

SELECT * FROM Employees 
ORDER BY LastName, FirstName

Esto ordena por el campo LastName, luego por el campo FirstName si LastName coincide.

Referencias