Сортировка нулевых значений после всех остальных, кроме специальных
У меня есть таблица элементов PostgreSQL с необязательным полем заказа:
CREATE TABLE tasks (
id integer PRIMARY KEY DEFAULT nextval('f_seq'),
f_id integer REFERENCES fixins,
name text NOT NULL,
sort integer
);
Я хочу задачи, которые не имеютsort
значение для сортировки после всех остальных, с одним исключением: еслиsort = -1
Я хочу это отсортировать после тех. Так, например, учитывая эти значения:
id | f_id | name | sort
---+------+----------+-------
1 | 1 | zeta | -1
2 | 1 | alpha | 1
3 | 1 | gamma | 3
4 | 1 | beta | 2
5 | 1 | delta |
6 | 1 | epsilon |
Я хочу, чтобы они сортировались как:alpha
, beta
, gamma
, delta
, epsilon
, zeta
.
Я знаю, что я могу использоватьORDER BY COALESCE(sort,99999)
упорядочить нулевые значения после ненулевых, но как я могу получить этот специальный-1
ценность, чтобы прийти после тех?