从表中选择第二大且没有限制

viM*_*MaL 5 mysql sql select

如何在不使用LIMIT的情况下从表中选择第二大标记或其他内容?我知道有可能使用LIMIT,但是可以不使用它吗?

假设我们有列id和标记.

Lie*_*ers 8

假设标记是唯一的,则以下查询为您提供第二大标记.

SELECT   MAX(marks)
FROM     ATable
WHERE    marks < (SELECT MAX(marks) FROM ATable)
Run Code Online (Sandbox Code Playgroud)

要获得整个记录,您可以将其包装成一个 INNER JOIN

SELECT  t1.*
FROM    ATable t1
        INNER JOIN (
          SELECT   marks = MAX(marks)
          FROM     ATable
          WHERE    marks < (SELECT MAX(marks) FROM ATable)
        ) t2 ON t2. marks = t1.marks
Run Code Online (Sandbox Code Playgroud)