黑马程序员技术交流社区

标题: 这个SQL该怎么写? [打印本页]

作者: 下一秒温存    时间: 2014-11-9 14:36
标题: 这个SQL该怎么写?
现在项目中有一个需求,就是要根据学生成绩生成一个学生成绩等级的报表,比如成绩在90-100分之间的是等级A,成绩在80-90分之间的是
等级B,已次类推。为了避免直接在程序中硬编码,专门设计了一张等级表,用户可以自由的配置,学生表和等级表的设计如下:

学生表:

Id         XueHao         Name         Mark
1         00001         ZhangSan         85
2         00002         LiSi         75

等级表:

Id         MarkFrom         MarkTo         Level
1         90         100         A
2         80         89         B
3         70         79         C

作者: Carter    时间: 2014-11-9 15:13
设计表还可以,没制作过报表,无能为力
作者: SanYong    时间: 2014-11-15 14:49
SELECT XueHao,NAME,
  CASE
  WHEN Mark>=90 THEN 'A'
  WHEN Mark BETWEEN 80 AND 89 THEN 'B'
  WHEN Mark BETWEEN 70 AND 79 THEN 'C'
  WHEN Mark BETWEEN 60 AND 69 THEN 'D'       
  ELSE 'E'
  END
  FROM student;




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2