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
本文介绍在SQL中对等级如AAA, AA+, A等进行有效排序的两种方法:一是通过创建额外的字典表并联接查询;二是使用CASE语句直接在ORDER BY子句中指定等级顺序。
184

被折叠的 条评论
为什么被折叠?



