2019-02-12
閱讀量:
1222
mysql查詢語句中成績等級ABCD可以做大小判斷嗎?
問題描述:
當我有一個字段,例如“成績”,取值分別為“A”、“B”、“C”、“D”……,那么在select...from...where語句中,可以判斷取值的大小嗎?
解決思路:
字母A~Z是升序,可以理解為順序變量,存在“A”<“B”<“C”<“D”……<……“Z”的大小判斷
這和成績本身等級大小的業(yè)務意義是相反的,因此需要格外注意
代碼示例:
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條評論
1條評論
0條評論