ORDER: Poner orden en los resultados



Generalidades
Como una de las cláusulas que podemos utilizar aparece ORDER, el cual sirve para especificar el orden como su nombre en inglés lo dice, en que se desean recuperar los registros de las tablas con la sintaxis "ORDER BY" y luego una lista de Campos que definirán los campos a ordenar:

Sintaxis
SELECT campo1, campo2, campo3, campo4 FROM Clientes ORDER BY campo_ordenar_primero, campo_ordenar_segundo

Incluso se puede especificar el orden de los registros: ascendente mediante la claúsula ASC si se desea ordenar los registros de manera ascendente, valor que toma por defecto si no se especifica esto, o bien se puede utilizar DESC, en este caso se ordenará de manera descendente el resultado.

Veamos esto con unos ejemplos que traerían resultados ordenados de diferente manera:


SELECT * FROM nombre_tabla ORDER BY campo1, campo3, campo8

Esta sintaxis nos va a seleccionar todos los registros de la tabla y los traerá ordenados de la manera específica que le solicitamos, es decir primero se ordenarán por el "campo1", luego ante la igualdad de este se decidirá el orden por el segundo campo en la lista de campos especificada luego de la cláusula ORDER BY, es decir el campo de nombre "campo3", para finalizar ordenando por el "campo8" como tercer y último criterio.


SELECT * FROM nombre_tabla ORDER BY campo8, campo1, campo2

Esta sintaxis nos va a seleccionar todos los registros de la tabla y pero ahora los traerá ordenados primero por el "campo8", luego ante la igualdad de este se decidirá el orden por el segundo campo en la lista es decir el campo de nombre "campo1", para finalizar ordenando por el "campo3" como último criterio.
En definitiva el orden que aparecen en la lista, otorga la prioridad en el ordenamiento de los registros, desde el primero de mayor prioridad hasta el último.

Estos dos ejemplos anteriores toman por defecto un ordenamiento ascendente de los registros, seria lo mismo que colocar la cláusula ASC en todos los casos:

SELECT * FROM nombre_tabla ORDER BY campo1 ASC, campo3 ASC, campo8 ASC
SELECT * FROM nombre_tabla ORDER BY campo8 ASC, campo1 ASC, campo2 ASC

Si hubiésemos querido lo contrario tendríamos que haber colocado la cláusula DESC para lograr un orden descendente como ya dijimos, y se puede utilizar logicamente una o la otra en un mismo campo, pero cualquiera de las dos puede ser utilizada en otro campo del mismo listado como por ejemplo:

SELECT * FROM nombre_tabla ORDER BY campo1 DESC, campo3 ASC, campo8 DESC


Tener en cuenta que el orden no distingue entre mayúsculas y minúsculas para el caso que se trate de letras, luego entre las mismas se realiza un orden simplemente alfabético, mientras que los números tienen menor orden que las letras, quedando por delante de éstas, así mismo los distintos símbolos y signos de puntuación, tienen menor orden que los números:

Por ejemplo ordenando de menor a mayor, es decir ascendentes estas Ciudades quedaría:

9 de Julio
25 de Mayo
Arrecifes
Bahía Blanca
Córdoba



 
 



Búsquedas más frecuentes
Lenguaje SQL