编写如下sql代码:90分及以上:优秀 80分至89分:良好 70分至79分:平均 70分以下:原分数
时间: 2023-05-25 08:02:10 浏览: 67
假设原分数保存在名为score的字段中,可以使用以下SQL代码进行评分:
SELECT
score,
CASE
WHEN score >= 90 THEN '优秀'
WHEN score >= 80 AND score <= 89 THEN '良好'
WHEN score >= 70 AND score <= 79 THEN '平均'
ELSE CAST(score AS VARCHAR)
END AS grade
FROM
your_table;
说明:
1. 使用CASE WHEN语句判断原分数所处范围,然后使用相应的文字代表该范围的评分。
2. 如果原分数低于70分(即不在以上三个范围内),则直接返回原分数。需要将原分数转换为字符串类型,因为CASE WHEN语句中所有分支返回值的类型必须一致,而在本例中'优秀'、'良好'和'平均'都是字符串类型。
相关问题
用SQL语句表示下列问题: 1) 查询平均分在70分以上的课程名和平均分
Sure, the SQL statement to retrieve the course names and their average scores where the average score is above 70 would be:
SELECT course_name, AVG(score) AS avg_score
FROM scores
GROUP BY course_name
HAVING AVG(score) > 70;
根据如下规则对机试成绩进行反复加分,直到平均分超过85分为止。 请编写T-SQL语句实现: 90分以上: 不加分 80一89分: 加1分 70一79分: 加2分 60一69分: 加3分 60分以下: 加5分
以下是根据题目要求编写的 T-SQL 语句:
```
DECLARE @avgScore FLOAT = 0; -- 存储平均分
DECLARE @sumScore FLOAT = 0; -- 存储总分
DECLARE @num INT = 0; -- 存储成绩数量
-- 计算平均分
SELECT @sumScore = SUM(CASE
WHEN score >= 90 THEN score
WHEN score >= 80 AND score <= 89 THEN score + 1
WHEN score >= 70 AND score <= 79 THEN score + 2
WHEN score >= 60 AND score <= 69 THEN score + 3
ELSE score + 5
END),
@num = COUNT(*)
FROM scores;
SET @avgScore = @sumScore / @num; -- 计算平均分
WHILE @avgScore <= 85 -- 如果平均分小于等于85,则继续加分
BEGIN
UPDATE scores
SET score = CASE
WHEN score >= 90 THEN score
WHEN score >= 80 AND score <= 89 THEN score + 1
WHEN score >= 70 AND score <= 79 THEN score + 2
WHEN score >= 60 AND score <= 69 THEN score + 3
ELSE score + 5
END;
-- 重新计算平均分
SELECT @sumScore = SUM(score),
@num = COUNT(*)
FROM scores;
SET @avgScore = @sumScore / @num; -- 计算平均分
END
```
该语句首先定义了三个变量,分别用于存储平均分、总分以及成绩数量。然后使用 SELECT 语句计算出总分和成绩数量,并根据题目要求计算出平均分。接下来使用 WHILE 循环,如果平均分小于等于85,则继续加分,直到平均分超过85为止。在循环中,使用 UPDATE 语句根据题目要求对成绩进行加分,并重新计算平均分。最终得到的结果是所有成绩加分后的结果。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)