获取SQLite3中ROWID的偏移量



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

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

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

应该会给你行之前最大的行。你也可以尝试…

select
   max(rowid)
from
   table
where
  rowid < row

…但根据我的经验,第一个选项效果更好。

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

SELECT COUNT(1) FROM table WHERE rowid < row

基本上是你之前的,但是不要指定一个列,否则在计数时它将不得不检查该列是否为空

不幸的是,你不能访问"ROW_NUMBER()"函数,就像在MS SQL。

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

row_number()/(partition by…?

最新更新