PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Nach Spalte ASC sortieren, aber zuerst NULL-Werte?

Postgres hat NULLS FIRST | LAST Modifikatoren für ORDER BY Ausdruck:

... ORDER BY last_updated NULLS FIRST

Das typische Anwendungsfall ist mit absteigender Sortierreihenfolge (DESC ), wodurch die vollständige Umkehrung der standardmäßigen aufsteigenden Reihenfolge (ASC ) zuerst mit Nullwerten - was oft nicht erwünscht ist. Um NULL zu sortieren Werte zuletzt:

... ORDER BY last_updated DESC NULLS LAST

Um die Abfrage mit einem Index zu unterstützen , machen Sie es passend:

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

Postgres kann Btree-Indizes rückwärts lesen, aber für einige Abfragepläne ist es wichtig, wo NULL ist Werte werden angehängt. Siehe:

  • Auswirkung der Ansicht auf die Gesamtleistung im Vergleich zur Begrenzung der Ergebnismenge