小编典典

DB2使用LIMIT和OFFSET

sql

我正在开发Java Web服务,当从IBM中型机(AS400)上的DB2数据库中获取大数据集时,允许分页。

例如; 如果数据集中有10000条记录,我想一次以1000个块的形式获取它们。

我发现这篇文章解释说我可以使用LIMIT和OFFSET。但是我需要将DB2_COMPATIBILITY_VECTOR变量设置为MYS

现在,我一直在谷歌搜索,看到您可以使用db2set来设置此变量。但是我无法找出在哪里键入此命令?

我正在Windows机器上进行开发,并且已经安装了iSeries,并且可以通过iSeries 5250模拟器访问IBM Mid Range Machine。

我知道这一定是一个真正的菜鸟问题,但是如何将DB2_COMPATIBILITY_VECTOR变量更改为MYS


阅读 836

收藏
2021-05-05

共1个答案

小编典典

DB2 for Linux Unix Windows(LUW)和DB2 for iSeries是不同的产品。可能,DB2 for
iSeries不支持DB2_COMPATIBILITY_VECTOR。我无法在“ iSeries信息中心”中找到它。

可以使用FETCH FIRST 10 ROWS ONLY子句代替LIMIT。

代替LIMIT和OFFSET,您应该能够将ROW_NUMBER
olap函数
与subselect一起使用。像这样的东西:

 SELECT emp.EMPNO, emp.SALARY
 FROM (

     SELECT EMPNO, SALARY, 
            ROW_NUMBER() OVER(ORDER BY SALARY DESC) as row_number
     FROM EMPLOYEE

 ) emp
 WHERE emp.row_number > 10
 AND emp.row_number <= 20
2021-05-05