我有一个查询,如下所示
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显示。
感谢你的任何帮助
发布于 2018-07-10 06:27:10
可以将CASE WHEN与多个ORDER BY结合使用。
SELECT *
FROM vehicle_type_master
ORDER BY (CASE WHEN Vehicle_Type_ID = '407' then 0 else 1 end) ,
standard_volume ascSQLfiddle:http://sqlfiddle.com/#!9/1b3907/10
使用IF和ORDER BY的最简单方法
SELECT *
FROM vehicle_type_master
ORDER BY IF(Vehicle_Type_ID ='20 FT',0,1),standard_volume asc方形小提琴:http://sqlfiddle.com/#!9/1b3907/9
https://stackoverflow.com/questions/51258404
复制相似问题