Classificação de valores nulos após todos os outros, exceto especiais

Eu tenho uma tabela de itens do PostgreSQL com um campo de pedido opcional:

CREATE TABLE tasks (
  id     integer  PRIMARY KEY DEFAULT nextval('f_seq'),
  f_id   integer  REFERENCES fixins,
  name   text     NOT NULL,
  sort   integer
);

Eu quero tarefas que não têmsort valor a ser ordenado após todos os outros, com uma exceção: sesort = -1 Eu quero classificar depois disso. Então, por exemplo, dados esses valores:

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  |     

Quero que eles classifiquem como:alpha, beta, gamma, delta, epsilon, zeta.

Eu sei que posso usarORDER BY COALESCE(sort,99999) para ordenar valores nulos após não nulos, mas como posso obter esse valor especial-1 valor para vir depois daqueles?

questionAnswers(2)

yourAnswerToTheQuestion