标签:grade 18 WHEN ELSE 2019 stud 子句 表达式 28
Hello,大家好!我是程序员阿飞!今天我们主要学习一下SQL中 case when then else end用法。
1、第一种情况
【语法】
CASE 表达式1
WHEN 表达式2 THEN 表达式3
...
WHEN 表达式4 THEN 表达式5
[ELSE 表达式6]
END
【原理】
将表达式1的值与各WHEN字句后面的表达式的值进行比较,如果两者相等,则返回THEN后面的值,然后跳出case语句,
否则返回ELSE子句中的表达式的值。ELSE子句是可选项,当case语句中不包含else子句时,若所有比较都失败,则case语句
将返回NULL。
【例子】从数据表stud_info中,选取stud_id、grade,如果grade为“男”则输出“M”,如果为“女”输出“F”。
SELECT stud_id, sex=CASE gender
WHEN ’男’ THEN ’M’
WHEN ’女’ THEN ’F’
END
FROM stud_info
2、第二种情况
【语法】
CASE WHEN 表达式2 THEN 表达式3
...
WHEN 表达式4 THEN 表达式5
[ELSE 表达式6]
END
【原理】
首先测试WHEN后的条件表达式的值,如果其值为真,则返回THEN后面的表达式的值,否则测试下一个WHEN子句中的表达式的值,
如果所有WHEN子句后的表达式的值都为假,则返回ELSE后的表达式的值,如果在CASE语句中没有ELSE子句,则CASE表达式返回NULL。
【例子】从stud_grade表中查询所有同学考试成绩情况,凡成绩为空者输出“未考”、小于60分输出“不及格”、60分至70分输出“及格”、
70分至90分输出“良好”、大于或等于90分时输出“优秀”。
SELECT
stud_id,
NAME,
score = CASE
WHEN grade IS NULL THEN
’未考’
WHEN grade < 60 THEN
’不及格’
WHEN grade >= 60
AND grade < 70 THEN
’及格’
WHEN grade >= 70
AND grade < 90 THEN
’良好’
WHEN grade >= 90 THEN
’优秀’
END
FROM
stud_grade
【PS】
标签:grade,18,WHEN,ELSE,2019,stud,子句,表达式,28 来源: https://blog.51cto.com/12388374/2365545
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。