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等函数,解决特定情况的数据查取问题






评论(0)


暂无数据
推荐帖子
0条评论
0条评论
0条评论