您的位置:首页 > 数据库 > Oracle

Oracle笔记 #01# 简单分页

2018-12-29 19:47 567 查看
原文链接:http://www.cnblogs.com/xkxf/p/10197650.html

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 是一种默认的习惯写法,因为一般总是倾向于先拿比较新的数据。

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

 

转载于:https://www.cnblogs.com/xkxf/p/10197650.html

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: