10

いくつかの double を持つ PostgreSQL テーブルがあり、それらは割合を格納します。pc_1では、列がと であるとしましょうpc_2

私が望むのは、これらの 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 に答える