热线电话:13121318867

登录
2019-02-12 阅读量: 1125
mysql查询语句中成绩等级ABCD可以做大小判断吗?

问题描述:

当我有一个字段,例如“成绩”,取值分别为“A”、“B”、“C”、“D”……,那么在select...from...where语句中,可以判断取值的大小吗?


解决思路:

字母A~Z是升序,可以理解为顺序变量,存在“A”<“B”<“C”<“D”……<……“Z”的大小判断

这和成绩本身等级大小的业务意义是相反的,因此需要格外注意


代码示例:

create table test(score varchar(10));
insert test values('A'),('B'),('C'),('D');
select * from test;

select score,count(*) from test
group by score
order by score desc;

  • 验证了字母Z~A是降序,因此存在“A”<“B”<“C”<“D”……<……“Z”的情况
select score from test where score > 'B';

  • 在Z~A是降序的情况下,可以进行大小判断,即该数据水平中,大于“B”的是“C”、“D”
  • 推广来看,字母的大小判定逻辑,可以结合like、left、substring等函数,解决特定情况的数据查取问题
39.7527
1
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子