Usar ORDER BY en SQL

Una de las claúsulas que podemos utilizar en SQL es ORDER, el cual usamos para especificar el orden, cuya sintaxis es primero «ORDER BY» y luego una lista de Campos que definirán los campos a ordenar:

La síntaxis es la siguiente:
SELECT campo1, campo2, campo3, campo4 FROM Clientes ORDER BY campo_ordenar_primero, campo_ordenar_segundo

Incluso se puede especificar el orden de los registros:

  • ASC: ascendente (valor que toma por defecto si no se especifica)
  • DESC: descendente

Veamos unos ejemplos:

SELECT * FROM nombre_tabla ORDER BY campo1, campo3, campo8Esta 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 «campo2» 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

Hay que tener en cuenta que el orden no distingue entre mayúsculas y minúsculas para el caso que se trate de letras, en este caso 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 (de manera ascendente) los siguientes campos quedarían así:

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

Fuente: http://www.lenguajesql.com.ar/lenguajesql/default.asp?id=10

Publicado por

victor

Hola!. Me llamo Víctor y soy Ingeniero Agrónomo de formación y programador web de profesión (desde el año 2006). Por otra parte me gusta, entre otras aficiones, el senderismo, jugar al futbol y al FIFA en la PS4. Te animo a participar en mi web www.biolucas.com

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

CommentLuv badge