Muchas veces queremos que los datos se muestren ordenados según algún orden en particular, que puede ser el Código, el Nombre, la Fecha, el Importe, etc.

Para conseguirlo hacemos uso de la cláusula ORDER BY

SELECT
   PRD_CODIGO,
   PRD_NOMBRE,
   PRD_PROCED,
   PRD_PREVTA
FROM
   PRODUCTOS
ORDER BY
   PRD_NOMBRE

Este SELECT nos mostrará a los productos ordenados alfabéticamente por sus nombres.

En lugar de decirle que ordene por una columna podemos decirle que ordene por la posición que esa columna tiene en el SELECT como vemos a continuación:

SELECT
   PRD_CODIGO,
   PRD_NOMBRE,
   PRD_PROCED,
   PRD_PREVTA
FROM
   PRODUCTOS
ORDER BY
   2

El resultado de este SELECT será exactamente igual al primero pero ahora usamos el número 2 en lugar de la columna PRD_NOMBRE. ¿Y por qué usamos el número 2? porque esa es la posición de la columna PRD_NOMBRE en el SELECT.

En la cláusula ORDER BY podemos tener varias columnas, no necesariamente una columna:

SELECT
   PRD_CODIGO,
   PRD_NOMBRE,
   PRD_PROCED,
   PRD_PREVTA
FROM
   PRODUCTOS
ORDER BY
   PRD_PROCED,
   PRD_NOMBRE

Aquí el SELECT nos mostrará a los productos ordenados por PRD_PROCED (o sea, el país de procedencia) y luego por el nombre del producto.

Igual que antes, si lo deseamos podemos usar las posiciones de las columnas en lugar de usar el nombre de las columnas, como:

ORDER BY
   3, 2

 

IMPORTANTE:

Se puede ordenar por cualquier columna, sea ésta de tipo carácter, de tipo numérico, de tipo fecha, etc. La única excepción son las columnas de tipo BLOB, no se puede ordenar por ellas.

.