Oracle笔记 #01# 简单分页
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 是一种默认的习惯写法,因为一般总是倾向于先拿比较新的数据。
然后网上有很多优化方案,有时间可以研究研究。。。。。。。。。。