Con SQL ORDER BY puedes organizar los re­su­l­ta­dos de búsqueda para consultas de datos en orden as­ce­n­de­n­te o de­s­ce­n­de­n­te. Al ordenar los datos de tu tabla de destino en filas y columnas, te será mucho más fácil encontrar los datos que buscas, lo que acelera los análisis de datos y las consultas de conjuntos complejos.

¿Qué es el comando SQL ORDER BY?

El comando ORDER BY en SQL se emplea para ordenar datos y re­su­l­ta­dos de conjuntos de datos simples o complejos en la tabla de destino. Con él se puede es­pe­ci­fi­car que los datos de destino se ordenen en sentido as­ce­n­de­n­te o de­s­ce­n­de­n­te, por lo que quedarán or­ga­ni­za­dos y serán fáciles de consultar. Por defecto, el comando ordena los datos de la consulta en orden as­ce­n­de­n­te, es decir, de la A a la Z o del valor menor al mayor. Si se prefiere un orden diferente, debe in­tro­du­ci­r­se la palabra clave ASC para as­ce­n­de­n­te o DESC para de­s­ce­n­de­n­te.

Puedes elegir una o varias columnas para ordenar los re­su­l­ta­dos de tu consulta. La función ORDER BY es crucial, ya que presenta los datos de una manera ordenada y permite así consultar datos de manera rápida y eficaz. ORDER BY se utiliza a menudo junto con SQL SELECT, SQL WHERE y, de­pe­n­die­n­do del caso, con otros ope­ra­do­res SQL o funciones como SQL GROUP BY

Consejo

¿Te gustaría trabajar con SQL, pero te faltan los co­no­ci­mie­n­tos para ello? En nuestra in­tro­du­c­ción a SQL con ejemplos puedes aprender lo básico para comenzar a utilizar este lenguaje de pro­gra­ma­ción.

La sintaxis de SQL ORDER BY

La sintaxis de ORDER BY es la siguiente:

SELECT  columnaA, columnaB, …  o *
FROM  tabla
ORDER BY  columnaA, columnaB, …  (opcional: ASC o DESC)
sql
Nota

Si es­pe­ci­fi­cas solo una columna después de ORDER BY, obtendrás una columna con los re­su­l­ta­dos ordenados. Si es­pe­ci­fi­cas varias columnas, la cláusula ordena primero todos los re­su­l­ta­dos según la columna A. Si hay entradas idénticas en distintas filas, la cláusula ordena las entradas de acuerdo con la columna B.

Puedes ampliar la sintaxis del SQL ORDER BY con los ope­ra­do­res o pa­rá­me­tros que quieras. Mediante la cláusula WHERE defines, por ejemplo, co­n­di­cio­nes adi­cio­na­les para limitar los re­su­l­ta­dos de la consulta. Para combinar con esta cláusula, debes escribir lo siguiente:

SELECT  columnaA, columnaB, …  o *
FROM  tabla
WHERE  columnaA  =  'condición'
ORDER BY  columnaA, columnaB, …  (opcional: ASC o DESC)
sql

Se pueden utilizar estos pa­rá­me­tros:

  • SELECT: mediante SQL SELECT puedes es­ta­ble­cer qué datos quieres analizar. Con el asterisco * es­pe­ci­fi­cas si la consulta es para todo el conjunto de datos o puedes indicar nombres de columnas para examinar columnas es­pe­cí­fi­cas.
  • FROM: establece de qué tabla se consultan los datos.
  • WHERE: la cláusula opcional SQL WHERE permite definir una condición es­pe­cí­fi­ca según la cual deben ordenarse los re­su­l­ta­dos. En este caso, puedes utilizar ope­ra­do­res de co­m­pa­ra­ción adi­cio­na­les como = u ope­ra­do­res como SQL LIKE o SQL NOT.
  • ORDER BY: establece según qué valor deben ordenarse los re­su­l­ta­dos. Si no añades ni ASC ni DESC, el orden será al­fa­bé­ti­co o numérico de­s­ce­n­de­n­te au­to­má­ti­ca­me­n­te.
Nota

La cláusula ORDER BY ordena los valores NULL en función de la base de datos utilizada y la secuencia de orden elegida. En SQLite, MySQL y SQL Server, el comando trata los valores NULL como los valores más bajos, por lo que cuando se ordenan en sentido as­ce­n­de­n­te se sitúan al principio. En Oracle y Po­s­t­gre­S­QL, los valores NULL se co­n­si­de­ran los valores más altos, por lo que al ordenarse en sentido as­ce­n­de­n­te se sitúan al final.

Los usos de ORDER BY

Estos son algunas de las posibles apli­ca­cio­nes de SQL ORDER BY:

  • cla­si­fi­car in­fo­r­ma­ción de productos por nombre, categoría o precio;
  • cla­si­fi­car tra­n­sac­cio­nes por cantidad, fecha o nombre;
  • ordenar pedidos por cantidad o va­lo­ra­cio­nes;
  • ordenar empleados por salario, encargos, re­n­di­mie­n­to o de­pa­r­ta­me­n­to;
  • realizar listas de in­ve­n­ta­rio por cantidad o nombre;
  • ordenar entregas por código postal o número de se­gui­mie­n­to;
  • ordenar listas de clientes por región o edad.
Base de datos en la nube
Hosting SQL Server
  • Toda la seguridad de nuestras versiones de MSSQL
  • El más alto re­n­di­mie­n­to gracias a la te­c­no­lo­gía SSD
  • So­lu­cio­nes Linux y Windows

Ejemplos de SQL ORDER BY

A co­n­ti­nua­ción, te ex­pli­ca­mos cómo funciona ORDER BY mediante tres ejemplos.

Ordenar productos por precio

Imagina que en la tabla “Productos” necesitas ordenar los productos de la categoría Belleza por precio en sentido as­ce­n­de­n­te. Para ello, debes utilizar FROM para es­ta­ble­cer la categoría que quieres ordenar. Después, escribe ORDER BY y ASC para ordenar por precio en sentido as­ce­n­de­n­te de la siguiente manera:

SELECT  *
FROM  Productos
WHERE  categoría  = 'Belleza'
ORDER BY  precio  ASC;
sql

Filtrar grupos de clientes

Imagina que en la tabla “Clientes” quieres ordenar al­fa­bé­ti­ca­me­n­te los nombres de los clientes pro­ce­de­n­tes de Alemania. Para ello, debes utilizar la condición “país” y, para ordenar de la A a la Z, debes añadir ASC. Si quisieras ordenar de la Z a la A, deberías in­tro­du­cir DESC después del comando ORDER BY de SQL. Se es­cri­bi­ría así:

SELECT  *
FROM  Clientes
WHERE  país = 'Alemania'
ORDER BY  nombre  DESC;
sql

Ordenar con varias co­n­di­cio­nes

Imagina que en la tabla “Productos” necesitas obtener las entradas de la categoría “Ele­c­tró­ni­ca” por cantidad en orden al­fa­bé­ti­co as­ce­n­de­n­te. Y, si la cantidad del pedido es idéntica, quieres ordenar los pedidos por región. La sintaxis sería la siguiente:

SELECT  *
FROM  Productos
WHERE  categoría  =  'Electrónica'
ORDER BY  cantidad ASC,  región  DESC;
sql

Al­te­r­na­ti­vas a SQL ORDER BY

Bá­si­ca­me­n­te, no existe una al­te­r­na­ti­va que tenga la misma función que ORDER BY, pero entre los comandos SQL que suelen emplearse en co­m­bi­na­ción con SQL ORDER BY se encuentra SQL GROUP BY. Mientras que con GROUP BY puedes agrupar conjuntos de datos de columnas, por ejemplo, por categoría, con ORDER BY también puedes or­de­nar­los.

Por ejemplo, imagina que quieres agrupar la cantidad de pedidos de clientes por país y, después, ordenar por cantidad media de pedidos de manera as­ce­n­de­n­te mediante la función agregada SQL AVG. Esta es la sintaxis que deberías usar:

SELECT  país, AVG(cantidad)
FROM  Clientes
WHERE  categoría = 'Electrónica'
GROUP BY  país
ORDER BY  AVG(cantidad) ASC;
sql

La cláusula SQL HAVING también permite ordenar conjuntos de datos según criterios y co­n­di­cio­nes definidos. Al utilizar LIMIT, se puede limitar el número de re­su­l­ta­dos.

Ir al menú principal