📅  最后修改于: 2023-12-03 15:12:36.992000             🧑  作者: Mango
这是一道GATE计算机科学考试中的问题9。本题需要你熟悉数据库的操作,具体问题和解答如下:
已知一张学生成绩表,包括学生id和成绩score两个字段,请使用SQL语句找出分数为第二高的学生的id。
我们可以采用子查询的方式来解决这个问题。示例代码如下:
SELECT id
FROM scores
WHERE score = (
SELECT MAX(score)
FROM scores
WHERE score < (
SELECT MAX(score)
FROM scores
)
);
我们可以解释一下这段代码的作用。
SELECT MAX(score)
FROM scores
SELECT MAX(score)
FROM scores
WHERE score < (
SELECT MAX(score)
FROM scores
)
SELECT id
FROM scores
WHERE score = (
SELECT MAX(score)
FROM scores
WHERE score < (
SELECT MAX(score)
FROM scores
)
);
注意:如果有多个学生的成绩等于第二高分,则SQL语句返回所有这些学生的id。
以上就是这个问题的解决方案。希望这篇文章对大家有所帮助!