普通 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 分页的主要内容,如果未能解决你的问题,请参考以下文章