Zio*_*ioN 6 sql db2 ibm-midrange sql-limit
我正在开发一个Java Web服务,允许在从IBM Mid Range Machine(AS400)上的DB2数据库中获取大数据集时进行分页.
例如; 如果数据集中有10000条记录,我想一次以1000块为单位获取它们.
我发现这篇文章解释说我可以使用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.
您应该能够使用带有ROW_NUMBER olap函数的子选择,而不是LIMIT和OFFSET .像这样的东西:
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
Run Code Online (Sandbox Code Playgroud)
从IBM i 7.1 TR11或IBM i 7.2 TR3开始,现在支持使用LIMIT/的普通现代分页OFFSET:
SELECT SalesOrderId,OrderDate,DueDate,ShipDate,
Status,CustomerId,SubTotal,TaxAmt
FROM SalesOrderHeader SOH
WHERE CustomerId=@CustomerId
ORDER BY SalesOrderId DESC
LIMIT @ROWS_PER_PAGE -- Variable = 10
OFFSET @PAGE_START_ROW -- Variable = 10 * Page Number
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11369 次 |
| 最近记录: |