一种是
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