我的选择看起来像这样,它从最大的 id 返回字段...
SELECT * FROM Pontos WHERE IdPonto = (SELECT MAX(IdPonto) FROM Pontos)
但现在我只想选择第二大的字段。
我的选择看起来像这样,它从最大的 id 返回字段...
SELECT * FROM Pontos WHERE IdPonto = (SELECT MAX(IdPonto) FROM Pontos)
但现在我只想选择第二大的字段。
SELECT * FROM Pontos WHERE IdPonto = (SELECT IdPonto FROM Pontos ORDER BY IdPonto DESC LIMIT 1,1)
应该管用。
这将是一种方法:
SELECT * FROM Pontos ORDER BY Id DESC LIMIT 1 OFFSET 1
(不太确定 sqlite 语法,但请阅读此 SO 线程以获取更多信息:Sqlite LIMIT / OFFSET 查询)
编辑:我认为在这种情况下没有必要运行嵌套查询。
这是用标准 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)
)
我似乎在标准 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));
希望能帮助到你。
SELECT * FROM Pontos ORDER BY IdPonto DESC LIMIT 1,1