当前位置: 代码迷 >> DB2 >> db2中查询从m行到n行的有关问题
  详细解决方案

db2中查询从m行到n行的有关问题

热度:1568   发布时间:2013-02-26 00:00:00.0
db2中查询从m行到n行的问题
一种是
SELECT       *       ROW_NUMBER()       OVER(ORDER       BY       COL1       DESC)       AS       ROWNUM       WHERE       ROWNUM <=N    
我试了试,   不成功,   哪位能给出个具体的例子

另一种是
SELECT       COLUMN       FROM       TABLE       where       1=1       FETCH       FIRST       N       ROWS       ONLY    
这种只能得到最前面N行记录,   如果想继续得到第二个N行,第三个N行记录该如何处理

第一次有DB2数据库,诚心等待高手指点迷津

------解决方案--------------------------------------------------------
看你是要实现分页吧

int Page1; //起始页
int Page2; //结束页
strSql= "SELECT * FROM (Select field1,field2,rownumber() over(ORDER BY id ASC) AS rn from YourTableName) AS a1 WHERE a1.rn BETWEEN "+Page1+ " AND "+Page2;

------解决方案--------------------------------------------------------
--SELECT * from
--(select row_number() over () as a ,CHANNEL.* from CHANNEL )
--as b
--where a> 3 and a < 50;

绝对没有问题
------解决方案--------------------------------------------------------
一种上面都给出了,按照上面写就可以了

另一种是
select * from table where COLUMN not in (
select COLUMN from TABLE FETCH FIRST N ROWS ONLY) FETCH FIRST m ROWS ONLY
  相关解决方案