Postgres má NULLS FIRST | LAST
modifikátory pro ORDER BY
výraz:
... ORDER BY last_updated NULLS FIRST
typické případ použití je s sestupným řazením (DESC
), což vytvoří úplnou inverzi výchozího vzestupného pořadí (ASC
) s nulovými hodnotami jako první – což často není žádoucí. Chcete-li seřadit NULL
hodnoty poslední:
... ORDER BY last_updated DESC NULLS LAST
Pro podporu dotazu pomocí indexu , aby to odpovídalo:
CREATE INDEX foo_idx ON tbl (last_updated DESC NULLS LAST);
Postgres umí číst indexy btree pozpátku, ale u některých plánů dotazů záleží kde NULL
hodnoty jsou připojeny. Viz:
- Dopad zobrazení na výkon na agregovanou funkci vs. omezení sady výsledků