SQL:SELECT SECOND BIGGEST ID中的所有字段

时间:2013-07-30 14:13:52

标签: android sql performance sqlite select

我的选择看起来像这样,它返回最大id ...

中的字段
SELECT * FROM Pontos WHERE IdPonto = (SELECT MAX(IdPonto) FROM Pontos) 

但现在我想只选择第二大的字段。

5 个答案:

答案 0 :(得分:2)

SELECT * FROM Pontos WHERE IdPonto = (SELECT IdPonto FROM Pontos ORDER BY IdPonto DESC LIMIT 1,1)应该有用。

答案 1 :(得分:2)

这是一种方法:

SELECT * FROM Pontos ORDER BY Id DESC LIMIT 1 OFFSET 1

(不太确定sqlite语法,但请阅读此SO线程以获取更多信息:Sqlite LIMIT / OFFSET query

编辑:我不认为在这种情况下运行嵌套查询是必要的。

答案 2 :(得分:0)

这是用标准SQL编写的(它不使用LIMIT和OFFSET),应该可以工作:

SELECT * FROM Pontos WHERE IdPontos = (
    SELECT MAX(t1.IdPontos) FROM Pontos t1
    WHERE t1.IdPontos not in (SELECT MAX(IdPontos) FROM Pontos)
)

答案 3 :(得分:0)

我似乎在标准SQL和SQLite中完成了这项工作。

select * from Pontos where IdPonto < (select max(IdPonto) from Pontos) and IdPonto = (select max(IdPonto) from Pontos where IdPonto < (select max(IdPonto) from Pontos));

希望它有所帮助。

答案 4 :(得分:0)

SELECT * FROM Pontos ORDER BY IdPonto DESC LIMIT 1,1