获得最大值之前的值

时间:2010-02-13 00:22:40

标签: sql max

例如,给定这个稀疏id表:

|id|
| 1|
| 2|
| 3|
| 6|
| 7|

我可以使用此查询从我的表中获取最高的“id”:

SELECT max(id) FROM Comics

我明白了:

|id|
| 7|

如何在最高“id”之前获得“id”(即使值不连续)?

3 个答案:

答案 0 :(得分:2)

一般而言,您可以先找到最大ID(您已完成),然后找到小于<)的最大ID。

具体地,

select max(id) from Comics where id < 7

或者,您可以按降序排列结果:

select id from Comics order by id desc

然后查看返回的第二个行。

答案 1 :(得分:1)

SELECT max(id) FROM Comics

相同
SELECT TOP 1 id FROM Comics ORDER BY ID DESC

注意:这是transact sql语法,根据您的供应商使用rownum或limit

获得第2行,你可以做到

SELECT TOP 1 ID 
FROM 
    (SELECT TOP 2 id 
     FROM Comics 
     ORDER BY ID DESC) 
ORDER BY ID ASC

答案 2 :(得分:0)

这也可以。

SELECT
    max(id)
FROM
    Comics 
WHERE id < (SELECT max(id) FROM Comics)