2010
04.07
04.07
用慣了 MySQL 大概都知道一個非常實用的語法: LIMIT ,這個語法可以限制回傳結果的資料筆數,以及從第幾筆查詢結果開始回傳,最廣為人知的應用大概就是分頁功能,但在 Oracle 裡面並沒有 LIMIT 這個語法,取而代之的是 ROWNUM 。
語法如下:
SELECT * FROM example_table WHERE ROWNUM = 1 ORDER BY example_column
這樣可以取回頭一筆資料,當然也可以取回某個區間的資料,例如取回前十筆資料:
SELECT * FROM example_table WHERE ROWNUM <11 ORDER BY example_column
如果要取得某個區間的資料,在 MySQL 可以這樣下(取回三筆資料,從第二筆開始,降冪排序):
SELECT * FROM example_table ORDER BY example_column DESC LIMIT 3, 1
如果是 Oracle 的話則可以用 MINUS 來做(取回 <5 的資料(四筆),再減掉 <2 的資料(一筆),亦即總共回傳三筆資料,從第二筆開始,降冪排序)。
SELECT * FROM example_table WHERE ROWNUM < 5 MINUS SELECT * FROM example_table WHERE ROWNUM < 2 ORDER BY example_column DESC

No Comment.
Add Your Comment