我有一个可选的排序场项目的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
值后,那些来?