具有限制冲突的游标分页



我试图创建一个基于日期的光标分页。

假设前11条记录具有确切的日期值。我把每页的限制设置为10。

在挖掘了一些游标分页库之后,我发现下一个游标有更大的标识符(在我的例子中,标识符是DateTime(。所以,如果像下面这样为第二页编写查询,第一个元素是第12条记录,而不是第11条。

where date > '10th record date'

由于限制,第11张唱片也不会出现在首页。

第一页或第二页上没有第11个元素。

我如何解决这个问题?我不能将它与id混合,因为结果是按date排序的,并且不能保证id是有序的。

那么,如何在每页都有限制的情况下创建光标分页呢?

您需要一个额外的标识符,以便排序键唯一地定义每一行。让我假设id是主键。然后你会使用:

where date > @date or (date = @date and id > @id)

CCD_ 6和CCD_。

在一些数据库中,您可以将其表述为:

where (date, id) > (@date, @id)

在许多数据库中,您可以只使用offset/fetch进行分页,而不必担心确切的逻辑。

最新更新