mysql操作查询结果case when then else end用法举例

create table course_score (
course varchar(250),
score   int
);

insert into course_score(course,score)values('chinese',70);
insert into course_score(course,score)values('math',80);
insert into course_score(course,score)values('english',58);

-- 
-- select course , score, 
-- ( case when score >=80 then 'Good'
--    when score >=60 then 'OK'
--    else 'NotGood' END) as score_level 
-- from course_score;
-- 

5.有一张表,里面有3个字段:语文,数学,英语。其中有3条记录分别表示语文70分,数学80分,英语58分,请用一条sql语句查询出这三条记录并按以下条件显示出来(并写出您的思路): 
大于或等于80表示优秀,大于或等于60表示及格,小于60分表示不及格。 
显示格式: 
语文 数学 英语 
及格 优秀 不及格 
------------------------------------------
select
(case when 语文>=80 then '优秀'
when 语文>=60 then '及格'
else '不及格') as 语文,
(case when 数学>=80 then '优秀'
when 数学>=60 then '及格'
else '不及格') as 数学,
(case when 英语>=80 then '优秀'
when 英语>=60 then '及格'
else '不及格') as 英语,
from table

 

mysql操作查询结果case when then else end用法举例

 https://www.cnblogs.com/clphp/p/6256207.html

Case具有两种格式。简单Case函数和Case搜索函数。 
--简单Case函数 
CASE sex 
         WHEN '1' THEN '男' 
         WHEN '2' THEN '女' 
ELSE '其他' END 
--Case搜索函数 
CASE WHEN sex = '1' THEN '男' 
         WHEN sex = '2' THEN '女' 
ELSE '其他' END 

这两种方式,可以实现相同的功能。简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式。 
还有一个需要注意的问题,Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略。 

--比如说,下面这段SQL,你永远无法得到“第二类”这个结果 
CASE WHEN col_1 IN ( 'a', 'b') THEN '第一类' 
         WHEN col_1 IN ('a')       THEN '第二类' 
ELSE'其他' END 
下面我们来看一下,使用Case函数都能做些什么事情。 

 
posted @ 2018-01-30 13:49  sky20080101  阅读(123)  评论(0)    收藏  举报