PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Classificar por coluna ASC, mas valores NULL primeiro?


Postgres tem o NULLS FIRST | LAST modificadores para ORDER BY expressão:
... ORDER BY last_updated NULLS FIRST

O típico caso de uso é com ordem de classificação decrescente (DESC ), que produz a inversão completa da ordem crescente padrão (ASC ) com valores nulos primeiro - o que geralmente não é desejável. Para classificar NULL últimos valores:
... ORDER BY last_updated DESC NULLS LAST

Para suportar a consulta com um índice , faça corresponder:
CREATE INDEX foo_idx ON tbl (last_updated DESC NULLS LAST);

Postgres pode ler índices btree para trás, mas para alguns planos de consulta importa onde NULL valores são anexados. Ver:
  • Impacto no desempenho da visualização na função agregada versus limitação do conjunto de resultados