Saltar al contenido

Ordenar por columna ASC, pero ¿valores NULL primero?

Es imprescindible comprender el código de forma correcta antes de aplicarlo a tu trabajo si tdeseas aportar algo puedes compartirlo con nosotros.

Solución:

Postgres proporciona la NULLS FIRST | LAST palabras clave para el ORDER BY cláusula para satisfacer esa necesidad exactamente:

... ORDER BY last_updated NULLS FIRST

A típico caso de uso es con orden de clasificación descendente (DESC), lo que produce la inversión completa del orden ascendente predeterminado (ASC) con null valores primero. A menudo no es deseable, por lo tanto, para mantener null últimos valores:

... ORDER BY last_updated DESC NULLS LAST

Para apoyar la consulta con un índicehaz que coincida:

CREATE INDEX foo_idx ON tbl (last_updated DESC NULLS LAST);

Postgres puede leer los índices de btree al revés, pero importa dónde se agregan los valores NULL.

Puede crear un ORDER BY personalizado mediante una instrucción CASE.
La declaración CASE verifica su condición y asigna a las filas que cumplen esa condición un valor más bajo que el que se asigna a las filas que no cumplen la condición.
Probablemente sea más fácil de entender dado un ejemplo:

  SELECT last_updated 
    FROM your_table 
ORDER BY CASE WHEN last_updated IS NULL THEN 0 ELSE 1 END, 
         last_updated ASC;

Puntuaciones y reseñas

Tienes la opción de añadir valor a nuestra información tributando tu veteranía en las acotaciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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