SELECT student_number, name, class FROM student ORDER BY enrollment_year DESC LIMIT 10, 20;
這樣就可把學生依入學年份排序,並只列出首第11至20個的結果。
Oracle沒有LIMIT,在Oracle上要怎樣做到呢?這問題經常有人在問。
其實我們以用subquery加上ROWNUM的小技巧去做到。
SELECT * FROM (SELECT student_number, name, class FROM student WHERE enrollment_year>2010) WHERE ROWNUM BETWEEN 11 AND 20;
這樣,結果就會例出排序後第11至20個結果。大家亦可以把WHERE clause上改為︰
ROWNUM>10 AND ROWNUM<=20
全句︰
SELECT * FROM (SELECT student_number, name, class FROM student WHERE enrollment_year>2010) WHERE ROWNUM>10 AND ROWNUM<=20;
結果也是一樣的。
沒有留言:
發佈留言