0

私の選択は次のようになり、最大のIDからフィールドが返されます...

SELECT * FROM Pontos WHERE IdPonto = (SELECT MAX(IdPonto) FROM Pontos) 

しかし、今は 2 番目に大きいフィールドだけを選択したいと考えています。

4

5 に答える 5

2

SELECT * FROM Pontos WHERE IdPonto = (SELECT IdPonto FROM Pontos ORDER BY IdPonto DESC LIMIT 1,1)動作するはずです。

于 2013-07-30T14:16:52.003 に答える
2

これはそれを行う1つの方法です:

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

(sqlite 構文についてはよくわかりませんが、詳細についてはこの SO スレッドをお読みください: Sqlite LIMIT / OFFSET query )

編集:この場合、ネストされたクエリを実行する必要はないと思います。

于 2013-07-30T14:18:45.087 に答える
0
SELECT * FROM Pontos ORDER BY IdPonto DESC LIMIT 1,1
于 2013-07-31T14:39:45.743 に答える
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)
)
于 2013-07-30T14:28:08.743 に答える