Oracle筆記 #01# 簡單分頁
阿新 • • 發佈:2018-12-29
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 是一種預設的習慣寫法,因為一般總是傾向於先拿比較新的資料。
然後網上有很多優化方案,有時間可以研究研究。。。。。。。。。。