PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Ordina per colonna ASC, ma prima i valori NULL?

Postgres ha il NULLS FIRST | LAST modificatori per ORDER BY espressione:

... ORDER BY last_updated NULLS FIRST

Il tipico il caso d'uso è con ordinamento decrescente (DESC ), che produce l'inversione completa dell'ordine crescente predefinito (ASC ) con valori null prima, cosa che spesso non è desiderabile. Per ordinare NULL valori ultimi:

... ORDER BY last_updated DESC NULLS LAST

Per supportare la query con un indice , fallo corrispondere:

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

Postgres può leggere gli indici btree all'indietro, ma per alcuni piani di query è importante dove NULL i valori sono aggiunti. Vedi:

  • Impatto sulle prestazioni della visualizzazione sulla funzione aggregata rispetto alla limitazione del set di risultati