Unidad 3. Consultas simples (VIII)


3.10. Ordenación de las filas del resultado ORDER BY

Si queremos que las filas del resultado de la consulta aparezcan ordenadas, lo podemos indicar mediante la cláusula ORDER BY.

ORDER BY {expression_columna|posicion_columna [ASC|DESC]}[ ,...n ]

Podemos indicar una columna o varias separadas por una coma, la columna de ordenación se especifica mediante el nombre de columna en el origen de datos o su posición dentro de la lista de selección. Si utilizamos el nombre de columna, no hace falta que la columna aparezca en la lista de selección. Si utilizamos la posición es la posición de la columna dentro de la lista de selección empezando en 1.

Por defecto la filas se ordenarán en modo ascendente (ASC), de menor a mayor; si queremos invertir ese orden añadimos detrás de la columna la palabra DESC.

  • Si la columna de ordenación es alfanumérica, las filas se ordenarán por orden alfabético.
  • Si la columna de ordenación es numérica, las filas se ordenarán de menor a mayor.
  • Si la columna de ordenación es de tipo fecha, las filas se ordenarán de más antigua a más reciente o futura.

Ejemplos:

Mostrar las ventas de cada oficina, ordenadas por orden alfabético de región y dentro de cada región por ciudad.

SELECT  oficina, region, ciudad, ventas

FROM  oficinas

ORDER  BY region, ciudad;

Da como resultado:

Oficina region ciudad ventas
24 centro Aranjuez 15000,00
23 centro Madrid NULL
12 este Alicante 73500,00
13 este Castellón 36800,00
11 este Valencia 69300,00
28 este Valencia 0,00
26 norte Pamplona NULL
22 oeste A Coruña 18600,00
21 oeste Badajoz 83600,00

Listar las oficinas de manera que las oficinas de mayores ventas aparezcan en primer lugar.

SELECT  ciudad, region, ventas

FROM  oficinas

ORDER  BY ventas DESC;
ciudad region ventas
Badajoz oeste 83600,00
Alicante este 73500,00
Valencia este 69300,00
Castellon este  36800,00
A Coruña oeste 18600,00
Aranjuez centro  15000,00
Valencia este 0,00
Pamplona norte NULL
Madrid centro NULL

Listar las oficinas clasificadas en orden descendente de rendimiento de ventas, de modo que las de mayor rendimiento aparezcan las primeras.

SELECT  ciudad, region, ventas-objetivo

FROM  oficinas

ORDER  BY 3 DESC;

Lo mismo que el anterior pero agrupadas por región.

SELECT  region, ciudad, (ventas-objetivo) AS superavit

FROM oficinas

ORDER BY region, superavit DESC;

Resultado:

Region ciudad superavit
centro Aranjuez -10000,00
centro Madrid NULL
este Valencia  11800,00
este Castellón 1800,00
este Alicante -6500,00
este Valencia  -90000,00
norte Pamplona NULL
oeste Badajoz 11100,00
oeste A Coruña -11400,00

En este caso hemos utilizado el alias de columna para hacer referencia a la columna calculada y también se puede observar que las filas aparecen ordenadas por región ascendente (no hemos incluido nada después del nombre de la columna) y dentro de cada región por superávit y descendente.

Para practicar puedes realizar este Ejercicio Ordenar los datos.

Febrero-2010
Pág. 3.8

Atrás  Inicio  Adelante



.