Listado completo de tutoriales

24 - Ordenar registros (order by)


Podemos ordenar el resultado de un "select" para que los registros se muestren ordenados por algún campo, para ello usamos la cláusula "order by".

La sintaxis básica es la siguiente:

 select *from NOMBRETABLA
  order by CAMPO; 

Por ejemplo, recuperamos los registros de la tabla "libros" ordenados por el título:

select *from libros
 order by titulo;

Aparecen los registros ordenados alfabéticamente por el campo especificado.

También podemos colocar el número de orden del campo por el que queremos que se ordene en lugar de su nombre, es decir, referenciar a los campos por su posición en la lista de selección. Por ejemplo, queremos el resultado del "select" ordenado por "precio":

 select titulo,autor,precio
  from libros order by 3;

Si colocamos un número mayor a la cantidad de campos de la lista de selección, aparece un mensaje de error y la sentencia no se ejecuta.

Por defecto, si no aclaramos en la sentencia, los ordena de manera ascendente (de menor a mayor). Podemos ordenarlos de mayor a menor, para ello agregamos la palabra clave "desc":

 select *libros
  order by editorial desc;

También podemos ordenar por varios campos, por ejemplo, por "titulo" y "editorial":

 select *from libros
  order by titulo,editorial;

Incluso, podemos ordenar en distintos sentidos, por ejemplo, por "titulo" en sentido ascendente y "editorial" en sentido descendente:

 select *from libros
  order by titulo asc, editorial desc;

Debe aclararse al lado de cada campo, pues estas palabras claves afectan al campo inmediatamente anterior.

Es posible ordenar por un campo que no se lista en la selección incluso por columnas calculados.

Se puede emplear "order by" con campos de tipo caracter, numérico y date.


Retornar