case when的简单用法

case when的简单用法

case

​ when 条件1 then 结果1

​ when 条件2 then 结果2

​ …

​ else 结果n

end

ps: 通常用在查询中,满足某个条件,就会输出后面某个结果

-- 查询所有学生的成绩,并将成绩划分为 优秀 良好,及格,不及格 等级
select s.sname, sc.cno,
	case 
		when sc.score>90 then "优秀"
		when sc.score>70 then "良好" 
		when sc.score>60 then "及格"
		else "不及格" 
	end as grade
from student s ,sc where s.sno=sc.sno 

-- 使用case when 语句进行数据分组,比如说: 统计不同年龄段的人的数量
select 
	case 
		when sage <20 then "20岁以下"
		when sage BETWEEN 20 and 30 then "20-30岁"
		when sage >30 and sage<50 then "30-50岁"
		else "50岁以上的"
	END age_group,count(1)
from student group by age_group
-- 使用 case when 进行字符串转换 如果名字为空,返回字符串 "null" 如果不为空,名字脱敏
select 
	case 
		when sname is null then "null"
		else CONCAT(left(sname,1),'**')
  end sname,
	sage,ssex	from student
-- 在查询的时候进行数学计算, 将20-30岁的人加上10岁  30-50岁的人加上20岁
select 
	sname,
	case 
		when sage between 20 and 30 then sage+10
		when sage between 30 and 50 then sage+20
	end new_age,ssex from student
-- 和聚合函数一块使用,统计不同年龄段的人数量 
select 
	count(case when sage BETWEEN 20 and 30 then 1  end) as "20-30",
	count(case when sage between 30 and 50 then 1 end) as "30-50"
	from student 
-- 指定年份到0年的总天数
select TO_DAYS("2-1-1")
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值