SQL里的多条件判断Case When Then(类似EXCEL里的IFS)

SQL里类似EXCEL里的IFS的多条件判断——Case When Then

基本格式:

CASE
    WHEN 条件1 THEN 结果1
    WHEN 条件2 THEN 结果2
    WHEN 条件3 THEN 结果3
    WHEN 条件4 THEN 结果4
.........
    WHEN 条件N THEN 结果N
    ELSE 结果X
END

Case可分为2种:简单Case函数Case搜索函数

1.简单Case函数

CASE sex
         WHEN '1' THEN '男'
         WHEN '2' THEN '女'
         ELSE '其他' 
END

2.Case搜索函数

CASE
         WHEN sex = '1' THEN '男'
         WHEN sex = '2' THEN '女'
         ELSE '其他'
END

例如:

SELECT SC.CId,
SUM(CASE WHEN SC.score>=60 THEN 1 ELSE 0 END)/COUNT(*)AS 及格率,
SUM(CASE WHEN SC.score>=70 AND SC.score<80 THEN 1 ELSE 0 END)/COUNT(*)AS 中等率,
SUM(CASE WHEN SC.score>=80 AND SC.score<90 and SC.score<80 THEN 1 ELSE 0 END)/COUNT(*)AS 优良率,
SUM(CASE WHEN SC.score>=90 THEN 1 ELSE 0 END)/COUNT(*)AS 优秀率
FROM SC
GROUP BY SC.CId

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 50个常用的sql语句Student(S#,Sname,Sage,Ssex) 学生表Course(C#,Cname...
    哈哈海阅读 1,248评论 0 7
  • Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 S...
    望l阅读 318评论 0 0
  • Student(Sid,Sname,Sage,Ssex) 学生表Course(Cid,Cname,Tid) 课程表...
    小炉炉阅读 1,475评论 0 0
  • Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 S...
    忘了呼吸的那只猫阅读 2,900评论 0 8
  • 说明:以下五十个语句都按照测试数据进行过测试,最好每次只单独运行一个语句。 问题及描述: --1.学生表 Stud...
    lijun_m阅读 1,319评论 0 1