Postgres предоставляет ключевые слова NULLS FIRST | LAST
для предложения ORDER BY
, чтобы точно удовлетворить эту потребность:
... ORDER BY last_updated NULLS FIRST
A типичный сценарий использования с убывающим порядком сортировки (DESC
), который приводит к полной инверсии по умолчанию в порядке возрастания (ASC
) с нулевыми значениями в первую очередь.Часто нежелательно - поэтому сохранять нулевые значения последними:
... ORDER BY last_updated DESC NULLS LAST
Для поддержки запроса с index , сделать его совпадающим:
CREATE INDEX foo_idx ON tbl (last_updated DESC NULLS LAST);
Postgres можетчитать btree-индексы задом наперед, но важно, куда добавляются значения NULL.