Oracle学习笔记——基础一起学 12

本文详细介绍了SQL中的CASEWHEN语句在不同场景下的应用,如根据月份判断、成绩等级划分以及更新表中的等级信息,展示了如何使用CASEWHEN进行条件判断并执行相应操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

--select case when 的使用

select

case

  when 条件1 then action1

  when 条件2 then action2

  when 条件3 then action3

  else actionN

  end case

from table;

  

--

case selector

when value1 then action1      

when value2 then action2

when value3 then action3

else actionN

end [case]

--使用case when判断是第几月份

select case when substr('20090310',5,2)='01' then '一月份'

            when substr('20090310',5,2)='02' then '二月份'

            when substr('20090310',5,2)='03' then '三月份'

            when substr('20090310',5,2)='04' then '四月份'

            else null

            end

            from dual; 

--先建立一个成绩表            

--把每个学生的grade列,用相应的等级来更新。

create table 成绩(sno number,km varchar2(10),score number,grade char(6));

insert into 成绩 values(1,'语文',65,null);

insert into 成绩 values(2,'数学',76,null);

insert into 成绩 values(3,'英语',86,null);

insert into 成绩 values(4,'语文',94,null);

commit;

--case等级,把学生分为优秀、良好、中等、及格。(case when第一种写法)

select

case

  when score>=90 then '优秀'

  when score>=80 then '良好'

  when score>=70 then '中等'

  when score>=60 then '及格'

  else '不及格'

  end grade

  from 成绩;

  

--使用select case when 判断生成临时表a,然后update 成绩 set grade,然后再使用where条件引出grade

select 

sno,

case

  when score>=90 then '优秀'

  when score>=80 then '良好'

  when score>=70 then '中等'

  when score>=60 then '及格'

  else '不及格'

  end grade

  from 成绩;

  

--给原来的表增加等级信息

update 成绩 set grade=(select grade from(select 

sno,

case

  when score>=90 then '优秀'

  when score>=80 then '良好'

  when score>=70 then '中等'

  when score>=60 then '及格'

  else '不及格'

  end grade

  from 成绩) a where 成绩.sno=a.sno);

  

--查询成绩表的信息

select * from 成绩;

发现已经成功

如果能帮到你请感谢我的老婆“一行琉璃”

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值