SQL获取第n行,删除后继续获取同一行



有人问我如何从表中获取第n行。但是,有了额外的要求,即使在删除/插入行之后,它也应该保持返回同一行。

我怀疑一定有办法做到这一点。

但是,如果你有任何想法请让我知道。谢谢。

不存在表的"n "行。SQL表表示无序集。它们没有特定的顺序,除非列指定了顺序。如果您有一个自动递增的列(也称为"sequence"或"identity")或一个具有默认创建日期的列,那么您可以使用它。如:

select t.*
from (select t.*, row_number() over (order by id) as seqnum
      from table t
     ) t
where t = @NTH;

标记为"rowwid",但不是数据库。您可以在Oracle和SQLite(也许在其他数据库)中使用rowid。但是,这并不一定保证一个特定的顺序。

最新更新