10

我有一个带有一些双精度的 PostgreSQL 表,它们存储百分比。所以假设列是pc_1pc_2

我想要的是按这两列中的哪一列降序排列,然后再按另一列降序排列。

所以如果我们的数据如下:

id  pc_1  pc_2 
 1  12.5  11.0
 2  10.0  13.2
 3  13.2  9.0
select * from mytable order by <something>

会给:

 2  10.0  13.2
 3  13.2  9.0
 1  12.5  11.0
4

2 回答 2

23
SELECT  *
FROM    mytable
ORDER BY
        GREATEST(pc_1, pc_2) DESC, LEAST(pc_1, pc_2) DESC
于 2012-06-08T17:08:43.903 回答
4
select *
from mytable
order by 
case when pc_1 > pc_2 then pc_1 else pc_2 end desc,
case when pc_1 > pc_2 then pc_2 else pc_1 end desc
于 2012-06-08T17:10:11.720 回答