Como obter a primeira / linha superior da tabela no Sqlite por meio do Sql Query


93

Preciso buscar a primeira linha / superior de uma tabela em um banco de dados Sqlite.

Mas meu programa lança uma SQLException "Sqlite Syntax Error: Syntax error near '1'" para a consulta que estou usando:

SELECT TOP 1 * 
FROM SAMPLE_TABLE

Isso eu acho que é uma sintaxe particularmente para MS SQL SERVER e MS ACCESS. Agora estou usando.

SELECT *
FROM SAMPLE_TABLE
LIMIT 1

Qual é a melhor solução para este problema?


Deve ser mencionado que o desenvolvedor não deve depender da ordem física dos registros na Tabela. Esta é uma ideia de perigo.
Ruslan Zasukhin

Respostas:


147

Use a seguinte consulta:

SELECT * FROM SAMPLE_TABLE ORDER BY ROWID ASC LIMIT 1

Observação: as referências de id de linha do Sqlite são detalhadas aqui .


28

LIMIT 1é o que você quer. Apenas tenha em mente que isso retorna o primeiro registro no conjunto de resultados, independentemente da ordem (a menos que você especifique uma ordercláusula em uma consulta externa).


1
LIMIT 1executa a consulta completa e, em seguida, descarta os resultados desnecessários. Existem várias discussões em listas de discussão sobre ele e COUNT(*). É diferente de encontrar o primeiro registro correspondente com TOP 1. Assim que o primeiro registro for encontrado, a consulta pode parar e retornar o resultado.
jww
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.