使用db2创建分页



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

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

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

好吧,根据您使用的DB2平台,您没有阅读完整的故事。DB2LUW支持LIMIT和OFFSET,但必须打开它(不要忘记在设置标志后重新启动DB2)。如果您想按照要求将DB2与ROW_NUMBER()一起使用,您可以编写如下查询:

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

还有一篇概述文章描述了在DB2中执行LIMIT/OFFSET工作的不同方法。

DB2 for I在最新的技术更新(7.1 TR11和7.2 TR3)中也支持LIMIT和OFFSET。

最新更新