So erhalten Sie die erste / oberste Zeile der Tabelle in Sqlite über Sql Query

87

Ich muss die erste / oberste Zeile einer Tabelle in einer SQLite-Datenbank abrufen.

Mein Programm löst jedoch eine SQLException "Sqlite-Syntaxfehler: Syntaxfehler in der Nähe von '1'" für die von mir verwendete Abfrage aus:

SELECT TOP 1 * 
FROM SAMPLE_TABLE

Das ist wohl eine Syntax speziell für MS SQL Server und MS ACCESS. Im Moment benutze ich.

SELECT *
FROM SAMPLE_TABLE
LIMIT 1

Was ist die beste Lösung für dieses Problem?

Omayr
quelle
Es sollte erwähnt werden, dass der Entwickler nicht von der physischen Reihenfolge der Datensätze in der Tabelle abhängen sollte. Das ist eine Gefahrenidee.
Ruslan Zasukhin
Mögliches Duplikat von Wie bekomme ich Top 5-Datensätze in SqLite?
Mehdi Dehghani

Antworten:

141

Verwenden Sie die folgende Abfrage:

SELECT * FROM SAMPLE_TABLE ORDER BY ROWID ASC LIMIT 1

Hinweis: Die Zeilen-ID-Referenzen von Sqlite werden hier detailliert beschrieben .

Achim
quelle
27

LIMIT 1ist was du willst. Beachten Sie jedoch, dass dies unabhängig von der Reihenfolge den ersten Datensatz in der Ergebnismenge zurückgibt (es sei denn, Sie geben orderin einer äußeren Abfrage eine Klausel an).

Jordan Parmer
quelle
1
LIMIT 1führt die vollständige Abfrage aus und verwirft dann die nicht benötigten Ergebnisse. Es gibt mehrere Mailinglistendiskussionen darüber und COUNT(*). Es unterscheidet sich vom Finden des ersten passenden Datensatzes mit TOP 1. Sobald der erste Datensatz gefunden wurde, kann die Abfrage anhalten und das Ergebnis zurückgeben.
JWW