在SQLite3中获取ROWID的偏移量

时间:2011-09-05 16:05:22

标签: sql sqlite rdbms

如何获取SQLite3数据库中特定行的偏移量?我不是在讨论ROWID,它不是线性的,我在讨论表格中第一个ROWID的特定ROWID的偏移/位置。

这类似于SELECT COUNT(rowid) FROM table WHERE rowid < row,它返回用row标识的行之前的行数。我觉得这太慢了,所以我希望有另一种方式,比这更快,这将给我一个表中一行的偏移/位置。

1 个答案:

答案 0 :(得分:1)

select top 1
   rowid
from
   table
where
  rowid < row
order by
  rowid desc

这应该会给你排前最大的rowid。你也可以试试......

select
   max(rowid)
from
   table
where
  rowid < row

......但根据我的经验,第一个选项表现更好。

如果您只想要目标行前面的行数。使用...

SELECT COUNT(1) FROM table WHERE rowid < row

基本上你以前有过,但是没有指定一个列,否则它必须在计数时检查该列是否为空。

不幸的是,您无权访问“ROW_NUMBER()”函数,就像在MS SQL中一样。

(关于SQLLite和编号的类似问题)

sqlite equivalent of row_number() over ( partition by ...?

希望这有帮助。