Regístrate para acceder a más de 15 cursos gratuitos de programación con un simulador

Ordenar datos Fundamentos de SQL

Cuando haces una consulta en SQL, puede que los resultados no aparezcan en ningún orden lógico. Hoy puede parecer que todo está ordenado por nombre... pero mañana, después de agregar nuevos datos o actualizar el servidor, el orden puede cambiar completamente.

💡 Por eso, nunca confíes en el orden “por defecto”. Si quieres controlar el orden de los resultados, usa el operador ORDER BY.

Ordernación de filas

Cómo ordenar los resultados

Imagina que tenemos una tabla de usuarios y queremos mostrarlos de la A a la Z según su nombre de usuario:

SELECT
    id,
    username,
    created_at
FROM users ORDER BY username;
id username
12 Abelardo58
33 Alanna99

ORDER BY ordena los datos por el campo que indiques. Si no aclaras nada más, el orden será ascendente (ASC): de menor a mayor, de la A a la Z o del más antiguo al más nuevo.

🔵 Abrir en DB Fiddle

También puedes ordenar por fechas o por números, no solo por texto:

SELECT
    id,
    username,
    created_at
FROM users ORDER BY created_at;

🔵 Abriren DB Fiddle

Controlar el orden

A veces necesitas cambiar la dirección del orden o usar más de un criterio. Veamos cómo hacerlo 👇

🔼 Ascendente (de menor a mayor)

ORDER BY created_at ASC;

Es la opción predeterminada, pero puedes escribir ASC si quieres dejarlo claro.

🔵 Abrir en DB Fiddle

🔽 Descendente (de mayor a menor)

ORDER BY created_at DESC;

Útil, por ejemplo, cuando quieres ver los registros más recientes primero.

🔵 Abrir en DB Fiddle

Ordenar por varios campos

A veces una sola columna no basta. Por ejemplo, queremos ordenar por nombre, y si hay varios con el mismo nombre, por fecha de creación (del más nuevo al más viejo):

SELECT first_name, created_at
FROM users
ORDER BY first_name ASC, created_at DESC;

id username created_at
12 Abelardo58 2022-06-14T13:10:36.133Z
33 Alanna99 2022-06-14T19:30:46.438Z
58 Alena17 2022-06-14T13:10:08.010Z
...

💬 SQL leerá la consulta así: “Primero ordena por first_name (A–Z), y dentro de cada grupo, ordena por created_at (nuevo → viejo).”

🔵 Abrir en DB Fiddle

Qué pasa con los valores NULL

Los valores vacíos (NULL) pueden alterar el orden, porque cada sistema los trata distinto:

  • En PostgreSQL, los NULL suelen ir al final.
  • En MySQL, al principio.

Para evitar sorpresas, puedes decidir tú dónde deben ir:

  • NULLS FIRST
  • NULLS LAST

Ejemplo usando NULLS FIRST:

-- NULL al inicio
ORDER BY created_at ASC NULLS FIRST;

🔵 Abrir en DB Fiddle

-- NULL al final
ORDER BY created_at DESC NULLS LAST;

🔵 Abrir en DB Fiddle


Resumen

  • El orden por defecto no está garantizado y puede cambiar.
  • Usa ORDER BY para definir el orden tú mismo.
  • ASC = ascendente (de menor a mayor), DESC = descendente.
  • Puedes ordenar por varios campos y decidir la posición de los NULL.

Materiales adicionales

  1. Select / PostgreSQL (en inglés)

Para acceder completo a curso necesitas un plan básico

El plan básico te dará acceso completo a todos los cursos, ejercicios y lecciones de Códica, proyectos y acceso de por vida a la teoría de las lecciones completadas. La suscripción se puede cancelar en cualquier momento.

Obtener acceso
130
cursos
1000
ejercicios
2000+
horas de teoría
3200
test

Obtén acceso

Cursos de programación para principiantes y desarrolladores experimentados. Comienza tu aprendizaje de forma gratuita

  • 130 cursos, 2000+ horas de teoría
  • 1000 ejercicios prácticos en el navegador
  • 360 000 estudiantes
Al enviar el formulario, aceptas el «Política de privacidad» y los términos de la «Oferta», y también aceptas los «Términos y condiciones de uso»

Nuestros graduados trabajan en empresas como:

Bookmate
Health Samurai
Dualboot
ABBYY