如何获取SQLite3数据库中特定行的偏移量?我不是在讨论ROWID,它不是线性的,我在讨论表格中第一个ROWID的特定ROWID的偏移/位置。
这类似于SELECT COUNT(rowid) FROM table WHERE rowid < row
,它返回用row
标识的行之前的行数。我觉得这太慢了,所以我希望有另一种方式,比这更快,这将给我一个表中一行的偏移/位置。
答案 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 ...?
希望这有帮助。