永发信息网

SQL case when 问题

答案:2  悬赏:30  手机版
解决时间 2021-02-19 09:38
  • 提问者网友:姑娘长的好罪过
  • 2021-02-18 10:37
给所有女学生的考试成绩每科加10分。(最高成绩不超过100)
select st_name,r_fenshu,
'分数'=case when sex='女'
then r_fenshu+10
else r_fenshu
end
from results
inner join students on results.r_stid = students.st_id

超过100 成绩按100显示 怎么写。。。。谢谢
自己想出来了。。select st_name,r_fenshu,
'分数'=case when r_fenshu+10>100
then 100
else r_fenshu+10
end
from results
inner join students on results.r_stid = students.st_id
where sex='女'
最佳答案
  • 五星知识达人网友:笑迎怀羞
  • 2021-02-18 12:06
select st_name,r_fenshu,
'分数'=case when sex='女' then
else case when r_fenshu+10 >=100 then
r_fenshu=100
else case r_fenshu+10<100 then
r_fenshu=r_fenshu+10
end
end
end
from results
inner join students on results.r_stid = students.st_id
全部回答
  • 1楼网友:老鼠爱大米
  • 2021-02-18 12:49
太长了,但是看到一个问题,case when,要求返回的类型必须一直。 你看你的第一个case when语句 (case when to_char(statistic_date-payrefdate&gt;=0) and to_char(statistic_date-payrefdate&lt;90) then sum(a.planfee-nvl(c.payreffee,0)) else &apos;&apos; end) then后边返回的是一个求和,那么类型肯定是数字,而else分支,其他情况下居然返回了空字符串,字符型。这两个不一致,首先就错了。你先改了这些吧。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯