SQLite,选择逐行索引,而不是id

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

我有一个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._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或更新版本

您可以使用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或更新版本

可能的重复可能的重复正是我想要的!谢谢回答得很好,我到处找这句话,这正是我想要的!谢谢回答得很好,我到处都在找这句话