Ordenamientos – Order by

Ordenar el conjunto de resultados del select

En muchas ocasiones se requiere listar los registros en un determinado orden, para esto se debe utilizar de manera correcta la cláusula Order by de Select

Ordenamientos

  • La Cláusula Order By, debe ir al final de la instrucción.
  • Se puede usar el nombre de campo, el alías o el número de orden del campo
  • Se puede usar Desc y Asc (por defecto), se puede ordenar por varios campos
  • Es posible usar un campo que no aparece en la lista de campos como el campo de ordenamiento.

Ejemplos

— Usando Northwind
use Northwind
go

— Listar los empleados ordenados por Apellidos
select * from Employees order by LastName
go

— Listar los clientes (Customers) ordenados por nombre
select C.CustomerID As ‘Cód. Cliente’, C.CompanyName As ‘Cliente’ from Customers As C order by C.CompanyName
go




— Listar los productos ordenados por Id. de Categoria y luego por Precio unitario.
select P.ProductID As ‘Código’, P.ProductName As ‘Descripción’, P.CategoryID As ‘Cód. Categoria’,
P.UnitPrice As ‘Precio’ from Products As P
order by CategoryID desc, precio asc
go

— Listar los empleados ordenados por fecha de ingreso en orden descendente
select E.EmployeeID, E.LastName, E.FirstName,
Format(E.HireDate,’dd/MM/yyy’) As ‘Fecha de Ingreso’
from Employees As E order by E.HireDate desc
go
— Note el uso de Format en la fecha de ingreso (HireDate)

— Ordenar los productos de las categorias 3,5 y 8 que tienen stock primero por categoria en orden ascendente y el stock en orden descendente.
Select P.ProductID As ‘Código’, P.ProductName As ‘Descripción’,
Format(P.UnitPrice, ‘###,##0.00’) As ‘Precio’,
P.UnitsInStock As ‘Stock’, P.CategoryID As ‘Cód. Categoría’ from Products As P
where P.CategoryID in (3,5,8) and P.UnitsInStock >0
order by P.CategoryID asc, P.UnitsInStock desc
go

Importante
Para el ordenamiento se puede usar el nombre de campo, el alias o el número de orden de aparición del campo después de Order By

— Listado de los proveedores (Suppliers) ordenados por país y por Nombre de compañía
— Usando el nombre de campo
select S.SupplierID As ‘Código’, S.CompanyName As ‘Empresa’, S.Country As ‘País’
from Suppliers as S order by S.Country, S.CompanyName
go
— Usando el alias del campo
select S.SupplierID As ‘Código’, S.CompanyName As ‘Empresa’, S.Country As ‘País’
from Suppliers as S order by País, Empresa
go
— Usando el orden de aparición del campo
select S.SupplierID As ‘Código’, S.CompanyName As ‘Empresa’, S.Country As ‘País’
from Suppliers as S order by 3, 2
go