oracle中rownum,sql server中top函式,mysql中limit[轉載]

Linda1980發表於2011-04-07
Sql server:

//前5行

select top 5 * from table

//查詢第11行到第20行記錄
select top 10 * from [表名] where [主鍵] not in (select top 10 [主鍵] from [表名] order by

[排序欄位及排序方法]) order by [排序欄位及排序方法]

oracle:

//前5行

select * from table where rownum <= 5;

//第5到10行

select * from table where rownum<10

minus

select * from table where rownum<4;

類似可以實現分頁功能

以前經常用這種方法:

select * from (select rownum rn,title,id from CMS_ARTICLE where DISPLAY_PLACE in(0,2) and STATE=1 and CATEGORY_ID = 169) t
where t.rn>16 and t.rn<20

MySQL

實現Top N及M至N段的記錄查詢


我們可以利用MySQL中Select支援的一個子句——LIMIT——來完成這項功能。

LIMIT可以實現top N查詢,也可以實現M至N(某一段)的記錄查詢,具體語法如下:

Select * FROM MYTABLE
orDER BY AFIELD

LIMIT offset, recnum
其中offset為從第幾條(M+1)記錄開始,recnum為返回的記錄條數。例:

select * from mytable
order by afield

limit 2, 5

即意為從第3條記錄開始的5條記錄。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7718881/viewspace-691860/,如需轉載,請註明出處,否則將追究法律責任。

相關文章