SQL列按两列的最高值排序

时间:2012-06-08 17:07:25

标签: sql postgresql

我有一个带有一些双打的PostgreSQL表,它们存储了前置数。所以我们说列是:

pc_1
pc_2

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

因此,如果我们的数据是:

id  pc_1  pc_2 
 1  12.5  11.0
 2  10.0  13.2
 3  13.2  9.0

通过<something&gt;从mytable订单中选择*会给:

 2  10.0  13.2
 3  13.2  9.0
 1  12.5  11.0

2 个答案:

答案 0 :(得分:20)

SELECT  *
FROM    mytable
ORDER BY
        GREATEST(pc_1, pc_2) DESC, LEAST(pc_1, pc_2) DESC

答案 1 :(得分: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