case when中else的添加与否的区别


首先建一个表:

create table grades(
stu_id int(20) not null,
stu_name varchar(20),
class_id int(20),
grade int(10)
);

查入数据:

insert into table grades(stu_id,stu_name,class_id,grade)
values
(11,'czy',201,91),
(17,'czs',201,91), (
12,'cz1',201,81), (13,'cza',201,71), (14,'czd',201,61), (15,'czk',201,51), (16,'czl',201,NULL);

使用case when排序:

select stu_name,
case 
    when grade > 90 then '优秀'
    when grade >80 then '中等上'
    when grade >70 then '中等下'
    when grade >=60 then '及格'
    when grade < 60 then '不及格'
else '没有成绩' 
end as
'rank' from grades

结果显示:

最后的‘czl’显示的是else后面的定义,如果没有else语句则结果是:

此处的NULL并不是表中'czl'的成绩NULL,而是当没有else结尾时,case when语句进行判断时,如果条件都不满足,默认返回NULL。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM