普通 SQL 分页

Posted

技术标签:

【中文标题】普通 SQL 分页【英文标题】:Plain SQL Pagination 【发布时间】:2016-09-21 16:44:05 【问题描述】:

我们想用纯 SQL 实现分页,但不能使用一些重要的关键字,因为旧数据库不理解它们。目标是获得 20 个条目,而不是加载并以编程方式分页 15,000 个条目。

这些关键字不起作用:

top N offset N rownum limit N

有没有办法用普通的旧 SQL 实现分页(无数据库函数)?


到旧系统的 JDBC 桥是 Attunity,其下方是 HP NonStop 数据库。我们正在尝试在 DBVisualizer 中开发查询。

rownum 的错误信息是

[Code: 0, SQL State: 42S22]  JBC0016E: Remote call failed (return code=-202). JBC0091W: Untranslatable Message: [A033] A column by the name 'rownum' was not found.

更新

我们确实有一些看起来像数字主键的东西。我是说看起来像,因为我们不确定这些数字的用途。这些数字确实像一个序列一样增加。

13771
13821
15461
20008
21253
23838
23929
26666

【问题讨论】:

你有数字主键列吗? 与 Oracle 序列完全不同,但看起来很像。请参阅我的问题中的更新。 也许使用游标? 【参考方案1】:

Attunity SQL 中的限制语法是 LIMIT TO X ROWS。该语法会将行数限制为您将 X 设置为的行数。

【讨论】:

添加一些描述

以上是关于普通 SQL 分页的主要内容,如果未能解决你的问题,请参考以下文章

单页分页问题中的多个角度材料表

梦内容页分页标题提取

一个视图中的 CI 多页分页,

以多页分页打印所有数据

CakePHP 2中带有分页分页类的大小为f数组的问题

当我在基于类的视图中应用过滤器时,如何在 django 中使用分页分页。网址总是不断变化我如何跟踪网址