SELECT MAX(Score)
FROM Students
WHERE Score < (SELECT MAX(Score) FROM Students);
上述查询工作正常,并获取第二高分的记录,而下面提到的查询不能获取任何内容
SELECT *
FROM Students
WHERE Score < (SELECT MAX(Score) FROM Students);
此处学生是我想要获取该记录的所有详细信息的表格,该记录在整个表格中排名第二。
我希望第二个查询能够执行,感谢提前帮助我。
答案 0 :(得分:1)
使用标准SQL,通常使用window functions解决此问题:
select *
from (
select *, dense_rank() over (order by score desc) as rnk
from students
) t
where rnk = 2;
以上是ANSI标准SQL,适用于所有现代DBMS。
答案 1 :(得分:0)
如何使用translate-c
订购和获取第一条记录:
LIMIT