有人问我如何从表中获取第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。但是,这并不一定保证一个特定的顺序。