order by 的使用

order by后直接跟上要排序的字段,如果不写,默认为升序

容易混淆的SQL如下:

select device_id, gpa, age from user_profile order by gpa,age desc 

解析:
因为order by后直接跟的是gpa,gpa后没有显式的指定升序,还是降序,所以默认为升序;而age字段后显式的写了desc,所以age字段以降序排列。
最终的结果为:以gpa升序排,当gpa有相同的值时,以age降序排


正确SQL

多个字段排序以逗号分隔,对要排序的字段后面加上ascdesc

select device_id, gpa, age from user_profile order by gpa desc,age desc