请写出sql语句实现修改函数Fun_Score,将学生成绩转换为等级输出。使用Case When子句实现(大于等于90分“优秀”,80分到90分“良好”,70分到80分“中”,60分到70分“及格”,小于60分“不及格”,否则“未考”)
时间: 2023-10-02 14:12:14 浏览: 37
好的,可以使用以下 SQL 语句来修改 Fun_Score 函数:
```sql
ALTER FUNCTION Fun_Score(Score FLOAT)
RETURNS VARCHAR(10) AS $$
BEGIN
RETURN CASE
WHEN Score >= 90 THEN '优秀'
WHEN Score >= 80 THEN '良好'
WHEN Score >= 70 THEN '中'
WHEN Score >= 60 THEN '及格'
WHEN Score < 60 THEN '不及格'
ELSE '未考'
END;
END;
$$ LANGUAGE plpgsql;
```
这个 SQL 语句使用了 ALTER FUNCTION 语句来修改 Fun_Score 函数。在函数体内部,我们使用了 `CASE WHEN` 子句来实现对成绩的等级判断,并返回对应的等级。修改后的函数可以将浮点数类型的成绩转换为对应的等级输出。
相关问题
(1)修改函数Fun_Score,将学生成绩转换为等级输出。使用Case When子句实现(大于等于90分“优秀”,80分到90分“良好”,70分到80分“中”,60分到70分“及格”,小于60分“不及格”,否则“未考”)
好的,可以通过以下代码修改Fun_Score函数来实现:
```sql
CREATE OR REPLACE FUNCTION Fun_Score (Score FLOAT)
RETURNS VARCHAR(10)
AS $$
BEGIN
RETURN CASE
WHEN Score >= 90 THEN '优秀'
WHEN Score >= 80 THEN '良好'
WHEN Score >= 70 THEN '中'
WHEN Score >= 60 THEN '及格'
WHEN Score < 60 THEN '不及格'
ELSE '未考'
END;
END;
$$ LANGUAGE plpgsql;
```
这个函数将一个浮点数类型的成绩作为输入,并将其转换为对应的等级输出。使用了 `CASE WHEN` 子句,根据不同的分数区间返回对应的等级。
用 sql server的case语句进行条件判断,查询每个学生的平均成绩并输出等级
好的,下面是 SQL Server 语句:
```sql
SELECT
StudentID,
AVG(Score) AS AverageScore,
CASE
WHEN AVG(Score) >= 90 THEN 'A'
WHEN AVG(Score) >= 80 THEN 'B'
WHEN AVG(Score) >= 70 THEN 'C'
WHEN AVG(Score) >= 60 THEN 'D'
ELSE 'F'
END AS Grade
FROM
Scores
GROUP BY
StudentID
```
这个语句会查询 `Scores` 表中每个学生的平均成绩,并且使用 `CASE` 语句根据平均成绩的不同输出不同的等级。其中,`AVG` 函数用于计算平均成绩,`GROUP BY` 子句用于按照学生分组计算平均成绩。