Tiempo de lectura:3 Minutos, 56 Segundos

En este articulo aprenderemos a ordenar registros con ORDER BY en PostgreSQL. Cuando realizamos una consulta (select), la herramienta nos devuelve los registros sin ningún orden especifico, pero podemos ordenarlos usando la cláusula order by.

La cláusula order by nos permite ordenar las filas devueltas por la cláusula select en orden ascendente o descendente en función de una expresión.

Sintaxis

En esta sintaxis:

  • Primero, escribes una expresión, que puede ser una columna de la tabla o una expresión, después de la palabra clave order by. Si quieres ordenar el conjunto de resultados en función de varias columnas o expresiones, tienes que escribir una coma (,) entre dos columnas o expresiones para separarlas.
  • En segundo lugar, escribes ASC o DESC después de cada campo o expresión para indicarle si debe ordenar de forma ascendente o descendente. Si se omite, ordenara de forma ascendente.

Cuando ejecutas una consulta en PostgreSQL que contiene las cláusulas select, from y order by la herramienta no las evalúa en ese orden, sino que primero evalúa el from, después el select y por último la cláusula order by.

Este orden es importante porque si utilizas un alias en el select podrás reutilizarlo en la cláusula de ordenación order by.

Ejemplos

Ordenar por un campo

En el siguiente ejemplo ordenamos los registros por el campo id_empleado de la tabla empleados. Al no especificarle si lo debe hacer en orden ascendente o descendente, automáticamente lo hace en orden ascendente. Observa ademas que aunque el campo id_empleado no esta en el select se puede ordenar por él.

Ordenar por dos campos con orden diferente

En el siguiente ejemplo ordenamos los registros por los campos ventas en orden descendente y sueldo en orden ascendente de la tabla empleados. Haciendo esta ordenación podemos interpretar los resultados viendo que el que menos sueldo tiene es el que más ha vendido y entre los que han vendido menos hay un empleado que cobra menos que otro.

Ordenar por una expresión

En el siguiente ejemplo ordenamos los registros utilizando la expresión lenght(nombre), es decir por el conteo de letras del campo nombre. Aunque en este ejemplo también se ha utilizado en la cláusula select no es necesario para utilizarlo como orden.

Ordenar por posición

En el siguiente ejemplo ordenamos los registros utilizando la posición de cada campo en función de cómo se han escrito en la cláusula select. Este método no es muy utilizado, sobretodo en consultas muy largas por su difícil compresión en un solo vistazo, ya que para saber porque se ha ordenado te obliga a ir a la cláusula select y ver el campo.

Ordenar teniendo en cuenta los nulos

Otra opción que tenemos es decidiendo que hacemos con los nulos, ademas de todo lo visto anteriormente, podemos decidir si queremos que los nulos se muestren primero (nulls first) o si queremos que se muestren al final (nulls last). En el siguiente ejemplo ordenamos el campo ventas en orden descendente pero mostrando los nulos primero.

Sino utilizas la opción para controlar el orden de los nulos, al utilizar el orden asc los colocara al final por defecto y si utilizas la opción desc los colocara al principio.

Ejemplo completo

Copia y pega el siguiente código en tu consola de PostgreSQL y realiza paso a paso leyendo los comentarios:

Deja una respuesta

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

Perfiles en Redes Sociales