SQL ORDER BY: aprende a ordenar los resultados de tu búsqueda
Con SQL ORDER BY
puedes organizar los resultados de búsqueda para consultas de datos en orden ascendente o descendente. 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 resultados de conjuntos de datos simples o complejos en la tabla de destino. Con él se puede especificar que los datos de destino se ordenen en sentido ascendente o descendente, por lo que quedarán organizados y serán fáciles de consultar. Por defecto, el comando ordena los datos de la consulta en orden ascendente, es decir, de la A a la Z o del valor menor al mayor. Si se prefiere un orden diferente, debe introducirse la palabra clave ASC
para ascendente o DESC
para descendente.
Puedes elegir una o varias columnas para ordenar los resultados 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, dependiendo del caso, con otros operadores SQL o funciones como SQL GROUP BY
¿Te gustaría trabajar con SQL, pero te faltan los conocimientos para ello? En nuestra introducción a SQL con ejemplos puedes aprender lo básico para comenzar a utilizar este lenguaje de programació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)
sqlSi especificas solo una columna después de ORDER BY
, obtendrás una columna con los resultados ordenados. Si especificas varias columnas, la cláusula ordena primero todos los resultados 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 operadores o parámetros que quieras. Mediante la cláusula WHERE
defines, por ejemplo, condiciones adicionales para limitar los resultados 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)
sqlSe pueden utilizar estos parámetros:
SELECT
: mediante SQL SELECT puedes establecer qué datos quieres analizar. Con el asterisco*
especificas si la consulta es para todo el conjunto de datos o puedes indicar nombres de columnas para examinar columnas específicas.FROM
: establece de qué tabla se consultan los datos.WHERE
: la cláusula opcional SQL WHERE permite definir una condición específica según la cual deben ordenarse los resultados. En este caso, puedes utilizar operadores de comparación adicionales como=
u operadores como SQL LIKE o SQL NOT.ORDER BY
: establece según qué valor deben ordenarse los resultados. Si no añades niASC
niDESC
, el orden será alfabético o numérico descendente automáticamente.
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 ascendente se sitúan al principio. En Oracle y PostgreSQL, los valores NULL se consideran los valores más altos, por lo que al ordenarse en sentido ascendente se sitúan al final.
Los usos de ORDER BY
Estos son algunas de las posibles aplicaciones de SQL ORDER BY:
- clasificar información de productos por nombre, categoría o precio;
- clasificar transacciones por cantidad, fecha o nombre;
- ordenar pedidos por cantidad o valoraciones;
- ordenar empleados por salario, encargos, rendimiento o departamento;
- realizar listas de inventario por cantidad o nombre;
- ordenar entregas por código postal o número de seguimiento;
- ordenar listas de clientes por región o edad.
Con SQL Server Hosting podrás beneficiarte de un sistema de gestión de bases de datos escalable, seguro y con tiempos de acceso rápidos y un rendimiento personalizado. Además, también podrás contar con la eficaz protección de datos que brindan los estándares alemanes.
- Ancho de banda de hasta 1 Gb/s y tráfico ilimitado
- Almacenamiento SSD NVMe ultrarrápido
- Incluye: edición Plesk Web Host
Ejemplos de SQL ORDER BY
A continuación, te explicamos 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 ascendente. Para ello, debes utilizar FROM para establecer la categoría que quieres ordenar. Después, escribe ORDER BY
y ASC
para ordenar por precio en sentido ascendente de la siguiente manera:
SELECT *
FROM Productos
WHERE categoría = 'Belleza'
ORDER BY precio ASC;
sqlFiltrar grupos de clientes
Imagina que en la tabla “Clientes” quieres ordenar alfabéticamente los nombres de los clientes procedentes 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 introducir DESC
después del comando ORDER BY
de SQL. Se escribiría así:
SELECT *
FROM Clientes
WHERE país = 'Alemania'
ORDER BY nombre DESC;
sqlOrdenar con varias condiciones
Imagina que en la tabla “Productos” necesitas obtener las entradas de la categoría “Electrónica” por cantidad en orden alfabético ascendente. 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;
sqlAlternativas a SQL ORDER BY
Básicamente, no existe una alternativa que tenga la misma función que ORDER BY
, pero entre los comandos SQL que suelen emplearse en combinació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 ordenarlos.
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 ascendente 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;
sqlLa cláusula SQL HAVING también permite ordenar conjuntos de datos según criterios y condiciones definidos. Al utilizar LIMIT
, se puede limitar el número de resultados.