SQL获取第N行,删除后继续获取相同的行

时间:2014-06-30 02:05:15

标签: sql rowid

我被问到如何从表中获取第N行。但是,即使在删除/插入行之后,附加要求仍然表示它应该保持返回相同的行。

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

但是,如果您有任何想法,请告诉我。谢谢。

1 个答案:

答案 0 :(得分:1)

没有表格的“第n”行。 SQL表表示无序集。它们没有特定的订单,除非列指定了订单。如果您有自动递增列(也称为“序列”或“标识”)或具有默认创建日期的列,则可以使用该列。如:

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

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