根据如下规则对机试成绩进行反复加分,直到平均分超过85分为止。 请编写T-SQL语句实现: 90分以上: 不加分 80一89分: 加1分 70一79分: 加2分 60一69分: 加3分 60分以下: 加5分
时间: 2024-02-21 07:59:15 浏览: 43
以下是根据题目要求编写的 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 语句根据题目要求对成绩进行加分,并重新计算平均分。最终得到的结果是所有成绩加分后的结果。
相关推荐
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)