我正在开发Java Web服务,当从IBM中型机(AS400)上的DB2数据库中获取大数据集时,允许分页。
例如;如果数据集中有10000条记录,我想一次以1000个块的形式获取它们。
我发现此article解释了我可以使用LIMIT和OFFSET。但是我需要将DB2_COMPATIBILITY_VECTOR
变量设置为MYS
。
现在,我一直在谷歌搜索,看到您可以使用db2set
设置此变量。但是我无法找出在哪里键入此命令?
我正在Windows机器上进行开发,并且已经安装了iSeries,并且可以通过iSeries 5250模拟器访问IBM Mid Range Machine。
我知道这一定是一个真正的菜鸟问题,但是如何将DB2_COMPATIBILITY_VECTOR
变量更改为MYS
呢?
最佳答案
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 function与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
关于sql - DB2使用LIMIT和OFFSET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21256121/