1. 程式人生 > >Oracle筆記 #01# 簡單分頁

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 是一種預設的習慣寫法,因為一般總是傾向於先拿比較新的資料。

然後網上有很多優化方案,有時間可以研究研究。。。。。。。。。。