SQL对于AAA,AA+,AA,AA-,A+,A,A-,B+…排序
现象
在sql 中无论是字典序还是用分别查出来进行拼接到一起,效果实现都不是很理想。
解决方法
使用一张额外的字典表,对应的各等级都加上顺序。
与你需要的表进行 join 联合查询即可。
以mysql为例进行举例:
SELECT * FROM `test` left join dict on test.level = dict.`name` ORDER BY dict.`value` asc
you get it
第二种方法
这种方法也就不需要用字典表了
order by case
when graderesult='AAA' then 0
when graderesult='AA+' then 1
when graderesult='AA' then 2
when graderesult='AA-' then 3
when graderesult='A+' then 4
when graderesult='A' then 5
when graderesult='A-' then 6
when graderesult='B+' then 7
when graderesult='B' then 8
when graderesult='B-' then 9
when graderesult='C' then 10
desc