SQLite,选择逐行索引,而不是id
我有一个sqlite数据库,有10万行。但是,随着时间的推移,其中一些行已被删除,因此主键不再是连续的。现在,他们的订单是3,5,6,9900,n 问题是我想把它们放在一个UITableView中,CellForIndexRowatingIndexPath是0,1,2,3等等。有没有一种方法可以这样做SQLite,选择逐行索引,而不是id,sqlite,Sqlite,我有一个sqlite数据库,有10万行。但是,随着时间的推移,其中一些行已被删除,因此主键不再是连续的。现在,他们的订单是3,5,6,9900,n 问题是我想把它们放在一个UITableView中,CellForIndexRowatingIndexPath是0,1,2,3等等。有没有一种方法可以这样做 SELECT * FROM table WHERE id = 0; 但是,我不想让id=0,而是希望选择0处的索引位置,就像这样 SELECT * FROM table where table
SELECT * FROM table WHERE id = 0;
但是,我不想让id=0,而是希望选择0处的索引位置,就像这样
SELECT * FROM table where table._table_index = 0; //don't try this at home
谢谢 您可以使用LIMIT和OFFSET关键字在结果集中的特定位置选择单个记录 此语句将在索引位置10处返回一行
SELECT * FROM Table LIMIT 1 OFFSET 10;
注:
由于回答了这个问题,SQLite添加了窗口函数。使用窗口函数,可以在查询中返回记录的行号
SELECT
row_number() OVER (ORDER BY FirstName, LastName) AS rowNum,
FirstName,
LastName,
FROM People;
sqlite 3.25版本中添加了窗口函数
- System.Data.Sqlite-1.0.110.0或更新版本
- Microsoft.Data.Sqlite-2.2.2或更新版本
SELECT * FROM Table LIMIT 1 OFFSET 10;
注:
由于回答了这个问题,SQLite添加了窗口函数。使用窗口函数,可以在查询中返回记录的行号
SELECT
row_number() OVER (ORDER BY FirstName, LastName) AS rowNum,
FirstName,
LastName,
FROM People;
sqlite 3.25版本中添加了窗口函数
- System.Data.Sqlite-1.0.110.0或更新版本
- Microsoft.Data.Sqlite-2.2.2或更新版本