如何根据where条件对查询的输出进行优先级排序

vql8enpb  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(347)

我有一个查询,如下所示

SELECT * FROM vehicle_type_master order by standard_volume asc

结果如下

Vehicle_Type_ID    standard_volume
 TATA ACE            20
  407                30
 20 FT               40

因此可能会出现以下情况,查询如下所示
一审:

SELECT * FROM vehicle_type_master where Vehicle_Type_ID    = '407'

因此对于这个查询,期望的结果应该是

Vehicle_Type_ID    standard_volume
  407                30
TATA ACE             20
 20 FT               40

二审:

SELECT * FROM vehicle_type_master where Vehicle_Type_ID    = '20 FT'

因此对于这个查询,期望的结果应该是

Vehicle_Type_ID    standard_volume
  20 FT                 40
TATA ACE                20
  407                   30

因此,无论哪一个条件出现在应该首先出现的条件中,其他行都应该按照 standard_volume asc公司。
谢谢你的帮助

x6492ojm

x6492ojm1#

你可以用 CASE WHEN 具有多个 ORDER BY ```
SELECT *
FROM vehicle_type_master
ORDER BY (CASE WHEN Vehicle_Type_ID = '407' then 0 else 1 end) ,
standard_volume asc

sqlfiddle:http://sqlfiddle.com/#!2010年9月1日
最简单的使用方法 `IF` 以及 `ORDER BY` ```
SELECT * 
FROM vehicle_type_master  
ORDER BY IF(Vehicle_Type_ID ='20 FT',0,1),standard_volume asc

sqlfiddle:http://sqlfiddle.com/#!2009年9月1日

相关问题