PostgreSQL orderar por datetime asc, null primero?

Necesito orderar una tabla PostgreSQL ascendente por un campo de date / hora, por ejemplo, last_updated .

Pero ese campo puede estar vacío o nulo y quiero loggings con nulo en last_updated antes que null last_updated .
es posible?

 order by last_updated asc /* and null last_updated records first ?? */ 

PostgreSQL proporciona NULLS FIRST | LAST NULLS FIRST | LAST palabras key para la cláusula ORDER BY para satisfacer exactamente esa necesidad:

 ORDER BY last_updated NULLS FIRST 

Un caso de uso típico es con order de sorting descendente ( DESC ), que produce la inversión completa del order ascendente pnetworkingeterminado ( ASC ) con valores nulos primero. A menudo no es deseable, por lo tanto, para mantener los valores nulos por última vez:

 ORDER BY last_updated DESC NULLS LAST 

Puede crear un ORDER BY personalizado utilizando una sentencia CASE.
La instrucción CASE verifica su condición y asigna a las filas que cumplen con esa condición un valor inferior al asignado 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;