使用 db2 创建分页

Creating a pagination with db2

我了解到 DB2 不支持 Limit 和 Offset。我还读到您必须使用 ROW_NUMBER() 和子查询来获得所需的结果。 如果这是一个 SQL 查询:

$sql = "SELECT * FROM ITEMS LIMIT $offset, $rowsperpage";

其中 $offset 是偏移量,$rowsperpage 是我想在页面上显示的数据库中的行数,这相当于 DB2 查询。

嗯,根据您使用的 DB2 平台,您可能没有阅读完整的故事。 DB2 LUW has support for LIMIT and OFFSET, but you have to turn it on(不要忘记在设置标志后重新启动 DB2)。如果您想按照您的要求将 DB2 与 ROW_NUMBER() 一起使用,您可以按如下方式编写查询:

SELECT * 
  FROM (SELECT ROW_NUMBER() OVER() AS rn, 
               items.* 
          FROM items)
  WHERE rn BETWEEN computelowerboundaryhere AND computeupperboundaryhere;

还有一个overview article describing the different ways of doing the LIMIT/OFFSET work in DB2.

latest technology refresh (7.1 TR11 and 7.2 TR3).

开始,DB2 for I 也支持 LIMIT 和 OFFSET