Postgresql自定义排序
我想按一列进行排序,其中我希望数字为ASC,但最后两行应始终为0,然后为1(如果存在) 例如:Postgresql自定义排序,sql,postgresql,Sql,Postgresql,我想按一列进行排序,其中我希望数字为ASC,但最后两行应始终为0,然后为1(如果存在) 例如: 八, 六, 十, 0 二, 一, 变成 二, 六, 八, 十, 0 一, 这怎么可能呢?我认为最清楚的办法是同时订购 (将除0和1之外的所有值置于0之前,将0置于1之前)并按列名(这样非0和非1值按顺序显示) 例如: SELECT column_name FROM table_name ORDER BY CASE WHEN column_name = 0
- 八,
- 六,
- 十,
- 0
- 二,
- 一,
- 二,
- 六,
- 八,
- 十,
- 0
- 一,
这怎么可能呢?我认为最清楚的办法是同时订购 (将除
0
和1
之外的所有值置于0
之前,将0
置于1
之前)并按列名
(这样非0
和非1
值按顺序显示)
例如:
SELECT column_name
FROM table_name
ORDER
BY CASE WHEN column_name = 0
THEN 0
WHEN column_name = 1
THEN 1
ELSE -1
END,
column_name
;
SELECT column_name
FROM table_name
ORDER
BY CASE WHEN column_name = 0
THEN 0
WHEN column_name = 1
THEN 1
ELSE -1
END,
column_name
;
SELECT *
FROM YOURTABLE
ORDER BY CASE YOURCOLUMN
WHEN YOURCOLUMN=0 THEN 0
WHEN YOURCOLUMN=1 THEN 1
ELSE -99
END;