db2 - 相当于 DB2 的 LIMIT

标签 db2 limit ibm-midrange

如何在 DB2 for iSeries 中执行LIMIT

我有一个包含超过 50,000 条记录的表,我想返回 0 到 10,000 条记录,以及 10,000 到 20,000 条记录。

我知道在 SQL 中,您可以在查询 0 到 10,000 的查询末尾写入 LIMIT 0,10000,在查询 10000 的查询末尾写入 LIMIT 10000,10000至 20,000

那么,这在 DB2 中是如何完成的呢?代码和语法是什么? (赞赏完整的查询示例)

最佳答案

使用仅获取第一个[n]行:

http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=/com.ibm.db29.doc.perf/db2z_fetchfirstnrows.htm

SELECT LASTNAME, FIRSTNAME, EMPNO, SALARY
  FROM EMP
  ORDER BY SALARY DESC
  FETCH FIRST 20 ROWS ONLY;

要获取范围,您必须使用 ROW_NUMBER() (自 v5r4 起)并在 WHERE 子句中使用它:(从此处窃取:http://www.justskins.com/forums/db2-select-how-to-123209.html )

SELECT code, name, address
FROM ( 
  SELECT row_number() OVER ( ORDER BY code ) AS rid, code, name, address
  FROM contacts
  WHERE name LIKE '%Bob%' 
  ) AS t
WHERE t.rid BETWEEN 20 AND 25;

关于db2 - 相当于 DB2 的 LIMIT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3885193/

相关文章:

sql - 主变量或参数的转换错误 *N

java - 使用 Java 对 I5/As400 程序进行现代化改造

java - 将数据追加到 DB2 blob

database - DB2 引发应用程序触发器

php - DB2 错误字符串列、主变量、常量或函数的不当使用

java - Java Swing JTextArea 的长度?

MySQL 限制在第二个表

.net - 为什么我的 iSeries/ASP.NET MVC 4 应用程序中没有重用连接?

sql - 我可以在 SQL 中执行 "conditional"连接吗

mysql - 如何在limit语句中使用用户定义变量?