我的选择看起来像这样,它返回最大id ...
中的字段SELECT * FROM Pontos WHERE IdPonto = (SELECT MAX(IdPonto) FROM Pontos)
但现在我想只选择第二大的字段。
答案 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