CASE函数

时间:2022-09-26 20:46:56
-> 使用类似switch-case与if-else if
-> 语法
•case [字段]
•    when 表达式 then 显示数据
•    when 表达式 then 显示数据
•    else 显示数据
•end as 别名
-> then 后数据类型要一致
 
简单的例子:
 select
case
when Sex='m' then '男'
when Sex='f' then '女'
else '中性'
end as 性别
,*
from dbo.StudentTestInsert
 select
case Sex
when 'm' then '男'
when 'f' then '女'
else '中性'
end as 性别
,*
from Student
 select
case
when Score >= 90 then 'A'
when Score >=80 then 'B'
when Score >=70 then 'C'
when Score >=60 then 'D'
else 'E'
end as Score1
,case Score/10
when 10 then 'A'
when 9 then 'A'
when 8 then 'B'
when 7 then 'C'
when 6 then 'D'
else 'E'
end as Score2
from Score
 create table Score
(
学号 nvarchar(),
课程 nvarchar(),
成绩 int
) insert into Score values('','语文',);
insert into Score values('','数学',);
insert into Score values('','英语',);
insert into Score values('','语文',);
insert into Score values('','数学',); select
学号,
SUM(case when 课程='语文' then 成绩 else end) as 语文,
SUM(case when 课程='数学' then 成绩 else end) as 数学,
AVG(case when 课程='英语' then 成绩 end) as 英语
from
Score
group by
学号;
  select
学号,
case when 课程='语文' then 成绩 else end as 语文,
case when 课程='数学' then 成绩 else end as 数学,
case when 课程='英语' then 成绩 end as 英语
from
Score