我有一个带有一些双打的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
答案 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