Buscar..


Observaciones

El propósito de la cláusula ORDER BY es ordenar los datos devueltos por una consulta.

Es importante tener en cuenta que el orden de las filas devueltas por una consulta no está definido a menos que haya una cláusula ORDER BY.

Consulte la documentación de MSDN para obtener todos los detalles de la cláusula ORDER BY: https://msdn.microsoft.com/en-us/library/ms188385.aspx

Cláusula ORDER BY simple

Usando la tabla de empleados , a continuación se muestra un ejemplo para devolver las columnas Id, FName y LName en orden LName (ascendente):

SELECT Id, FName, LName FROM Employees
ORDER BY LName

Devoluciones:

Carné de identidad FName LName
2 Juan Johnson
1 James Herrero
4 Johnathon Herrero
3 Miguel Williams

Para ordenar en orden descendente, agregue la palabra clave DESC después del parámetro de campo, por ejemplo, la misma consulta en orden descendente de LName es:

SELECT Id, FName, LName FROM Employees
ORDER BY LName DESC

ORDENAR por campos múltiples

Se pueden especificar varios campos para la cláusula ORDER BY , en orden ASCending o DESCending.

Por ejemplo, al usar la tabla http://stackoverflow.com/documentation/sql/280/example-databases/1207/item-sales-table#t=201607211314066434211 , podemos devolver una consulta que se ordena por SaleDate en orden ascendente y Cantidad en orden descendente.

SELECT ItemId, SaleDate, Quantity
FROM [Item Sales]
ORDER BY SaleDate ASC, Quantity DESC

Tenga en cuenta que la palabra clave ASC es opcional, y los resultados se clasifican en orden ascendente de un campo determinado de forma predeterminada.

ORDENAR con lógica compleja

Si queremos ordenar los datos de manera diferente por grupo, podemos agregar una sintaxis de CASE a ORDER BY . En este ejemplo, queremos ordenar a los empleados del Departamento 1 por apellido y a los empleados del Departamento 2 por salario.

Carné de identidad FName LName Número de teléfono ManagerId DepartmentId Salario Fecha de contratación
1 James Herrero 1234567890 NULO 1 1000 01-01-2002
2 Juan Johnson 2468101214 1 1 400 23-03-2005
3 Miguel Williams 1357911131 1 2 600 12-05-2009
4 Johnathon Herrero 1212121212 2 1 500 24-07-2016
5 Sam sajón 1372141312 2 2 400 25-03-2015
The following query will provide the required results:
SELECT Id, FName, LName, Salary FROM Employees
ORDER BY Case When DepartmentId = 1 then LName else Salary end

Pedidos personalizados

Si desea ordenar por una columna utilizando algo distinto al orden alfabético / numérico, puede usar case y case para especificar el orden que desea.

order by Group devoluciones de order by Group :

Grupo Contar
No jubilado 6
Retirado 4
Total 10

order by case group when 'Total' then 1 when 'Retired' then 2 else 3 end devuelve:

Grupo Contar
Total 10
Retirado 4
No jubilado 6


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow