Оператор Select в SQLite распознает номер строки - PullRequest
10 голосов
/ 23 января 2012

Я хочу написать оператор SQLite примерно так:

SELECT * FROM Table WHERE RowNumber BETWEEN 1 AND 10;

но у меня нет такого столбца RowNumber. У меня есть первичный ключ в моей таблице. Но есть ли по умолчанию номер строки, которую я мог бы использовать?

Также я ищу информацию о написании более сложных операторов SQLite. Так что если у вас есть ссылки в закладках, поделитесь.

Спасибо.

Ответы [ 3 ]

26 голосов
/ 23 января 2012

Вы хотите использовать LIMIT и OFFSET

SELECT * FROM Table LIMIT 10 OFFSET 0

Что также можно выразить с помощью следующего сокращенного синтаксиса

SELECT * FROM Table LIMIT X,Y

Где X представляет смещение, которое является исключительным, а Y представляет количество, например,

SELECT * FROM Table LIMIT 50,50

Вернет строки 51-100

4 голосов
/ 23 января 2012

К автоматически созданному rowid для таблицы могут обращаться несколько разных имен. Из документации SQLite :

Каждая строка каждой таблицы SQLite имеет 64-разрядный целочисленный ключ со знаком, который однозначно идентифицирует строку в своей таблице. Это целое число обычно называют «rowid». Доступ к значению rowid можно получить с помощью одного из специальных независимых от регистра имен «rowid», «oid» или «_rowid_» вместо имени столбца.

0 голосов
/ 23 января 2012
SELECT * FROM Table WHERE ROWID BETWEEN 1 AND 10; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...