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