例如,给定这个稀疏id表:
|id| | 1| | 2| | 3| | 6| | 7|
我可以使用此查询从我的表中获取最高的“id”:
SELECT max(id) FROM Comics
我明白了:
|id| | 7|
如何在最高“id”之前获得“id”(即使值不连续)?
答案 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)