sql >> Base de Datos >  >> RDS >> PostgreSQL

Ordenar por columna ASC, pero ¿valores NULL primero?

Postgres tiene el NULLS FIRST | LAST modificadores para ORDER BY expresión:

... ORDER BY last_updated NULLS FIRST

El 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 valores nulos primero, lo que a menudo no es deseable. Para ordenar NULL últimos valores:

... ORDER BY last_updated DESC NULLS LAST

Para respaldar la consulta con un índice , haz que coincida:

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

Postgres puede leer índices de btree al revés, pero para algunos planes de consulta importa dónde NULL Se adjuntan valores. Ver:

  • Impacto en el rendimiento de la vista en la función agregada frente a la limitación del conjunto de resultados