首页 > 数据库技术 > 详细

Oracle笔记 #01# 简单分页

时间:2018-12-29 20:07:05      阅读:203      评论:0      收藏:0      [点我收藏+]

rownum是Oracle为查询结果分配的有序编号(总是从1~n)。言下之意,rownum字段本来并不存在于表中,而是经查询后才分配的。

举一个例子:

SELECT rownum, name, price 
FROM item 
WHERE user_id=1000 AND status=0;

技术分享图片

错误的示范(试图直接用rownum字段):

SELECT rownum, name, price 
FROM item 
WHERE user_id=1000 AND status=0 AND rownum > 1;

技术分享图片

正确的写法(采用简单的子查询,将rownum临时固定一下。。):

SELECT *
FROM (
SELECT rownum AS r, name, price 
FROM item 
WHERE user_id=1000 AND status=0
ORDER BY id DESC
) temp 
WHERE r >= 1 AND r < 6;

ORDER BY xxx DESC 是一种默认的习惯写法,因为一般总是倾向于先拿比较新的数据。

技术分享图片

然后网上有很多优化方案,有时间可以研究研究。。。。。。。。。。

 

Oracle笔记 #01# 简单分页

原文:https://www.cnblogs.com/xkxf/p/10197650.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!