我有一个提供此输出的查询:
ID |product | value | type
-----------------
65 | truck | 4000 | kg
66 | truck | 3000 | kg
67 | truck | 7000 | mt
68 | truck | 800 | mt
69 | crane | 2000 | kg
70 | crane | 3000 | kg
71 | crane | 1000 | mt
72 | crane | 500 | mt
我需要按产品按类型排序,然后需要根据相应的类型对数值进行排序。 所以数字必须是desc,如果'kg'和asc,如果'mt'。 我需要像上面那样订购上一张表:
ID |product | value | type
-----------------
65 | truck | 4000 | kg
66 | truck | 3000 | kg
67 | truck | 800 | mt
68 | truck | 7000 | mt
69 | crane | 3000 | kg
70 | crane | 2000 | kg
71 | crane | 500 | mt
72 | crane | 1000 | mt
我该如何解决这个问题? 提前谢谢!
答案 0 :(得分:3)
您可以将order by
指定为:
order by product,
(type = 'kg') desc,
(case when type = 'kg' then value end) desc,
value asc
第二个表达式首先放置所有kg
行(对于每个产品)。第三个命令kg
行下降。最终命令其余部分('mt'
)升序。
答案 1 :(得分:1)
您可以使用不同的订单
按产品订购,
型,
(当type ='mt'然后是值desc
的情况else value asc end)