示例数据表
成绩表
姓名 | 成绩 |
李昂 | 86 |
章琪 | 65 |
林永琪 | 78 |
谢华 | 45 |
刘舒羽 | 96 |
嫦丽 | 67 |
罗洛 | 90 |
刘创业 | 72 |
袁谢君 | 54 |
吴琳凌 | 59 |
周一好 | 98 |
贺江 | 80 |
评价标准表
起始分数 | 终止分数 | 等级 |
90 | 100 | 优秀 |
80 | 89 | 良好 |
70 | 79 | 一般 |
60 | 69 | 及格 |
0 | 59 | 不及格 |
如图所示为某班的测验成绩及其评价标准,测验成绩在90一100之间的为优秀,在80~89之间的为良好,在70~79之间的为一般,在60—69之问的为及格,在0~59之间的为不及格。如何根据评价标准,给学生评定等级?
实现代码
SELECT A.姓名,A.成绩,B.等级
FROM [成绩$] A,[评价标准$] B
WHERE A.成绩 BETWEEN B.起始分数 AND B.终止分数
ORDER BY A.姓名
使用BETWEEN AND连接工作表
在本例中使用了BETWEEN条件,而不是等于条件。连接条件中使用了3个列,其中一个列的值必须介于另外两个列的值之间。
这里在SELECT子句中只列出了姓名、成绩、等级三个列字段,其中姓名、成绩来自成绩表,等级来自评价标准表。将连接的条件写在WHERE子句中,此处使用的连接条件是BETWEEN,成绩放在起始分数及终止分数之间。最后用ORDER BY子句根据姓名来排序结果。
在本例评价标准表中必须设置没有重叠的等级范围,每个成绩只能对应一个评价等级。