DB2分页查询,结果集大小,ROW_NUMBER OVER

数据库某表中有1533113条数据,但是我想查看最新的几条,输入select * from Table,执行1分多后,返回个内存不足的错误(Out of memory. Partial results returned.)

于是乎,上网找关于db2的分页查询.找到row_number() over()函数和fFETCH FIRST n ROWS ONLY,由于后者是查询前多少行(没有专业书籍,也许有对立语句),所以不使用了.现在介绍前者:

使用方法:

将 ROW_NUMBER() OVER() 子句与谓词一起用于 where 子句中。示例:

SELECT * FROM TABLE
--Out of memory. Partial results returned.
SELECT row_number() over() AS ROW_NUM FROM TABLE WHERE ROW_NUM > 1533013
-- SQL0206N  "ROW_NUM" 在使用它的上下文中无效。  SQLSTATE=42703
SELECT * FROM (SELECT row_number() over() AS ROW_NUM FROM TABLE) WHERE ROW_NUM > 1533013 
-- SQL0104N  在 ")" 后面找到异常标记 ""。预期标记可能包括:"AS"。  SQLSTATE=42601
SELECT * FROM (SELECT row_number() over() AS ROW_NUM FROM TABLE) AS t WHERE ROW_NUM > 1533013 
--ROW_NUM
SELECT * FROM (SELECT row_number() over() AS ROW_NUM,* FROM TABLE) AS t WHERE ROW_NUM > 1533013
-- SQL0104N  在 ") over() AS ROW_NUM," 后面找到异常标记 "*"。预期标记可能包括:"<select_sublist>"。  SQLSTATE=42601
SELECT * FROM (SELECT row_number() over() AS ROW_NUM,s.* FROM TABLE AS s) AS t  WHERE ROW_NUM > 1533013
终于得到想要的结果集.分享ing
OVER()中间可以带排序方法ORDER BY xxx DESC(ASC) 等等

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值