select * from a_matrix_navigation_map
where rowid not in(select rowid from a_matrix_navigation_map where rownum<=0) and rownum<=10 第二種: SELECT * FROM ( SELECT A.*, rownum r FROM ( SELECT * FROM a_matrix_navigation_map ) A WHERE rownum <= 10 ) B WHERE r > 0 第三種 SELECT * FROM table WHERE ROWNUM<101; minus SELECT * FROM table WHERE ROWNUM<91; 第四種 可以用變通一點的辦法,我給個示例: sql = "select a_id,a_title,a_author,aID,a_time,a_readtime,sID from article order by a_id"; int a; while (rs.next()) { a++; if (a=ipage+spage)continue; ... } 其中第二種是非常成熟的分頁 我的實例~ 即可實現 類似limit 功能
$bandanspager="select * from abc t2,abc1 t1 where t1.id=t2.id group by t1.id";
$sql=" SELECT * FROM
(
SELECT A.*, rownum r
FROM
( ".$bandanspager.") A
WHERE rownum <= 10
) B
WHERE r > 0
Oracle不支持類似於 MySQL 中的 limit. 但你還是可以rownum來限制返回的結果集的行數.
其他數據庫模擬實現mysql的limit語法 假如我有個user表,我想查詢符合某些條件的第50個用戶開始的10個用戶,且不能使用id號between and那樣查詢,應該怎麼寫SQL語句? 在mysql數據庫中有limit,offset語句可以方便的實現,那麼在SQL server中呢?SQL Server是否支持limit和offset語句呢? select top 10 * from oracle,如果想從表中取出按照某字段排序前M到N條記錄 下面的ORACLE語句是最好的: SQL> select ID from
SqlServer分頁: 一條SQL語句搞定Sql Server 2000 分頁 Sql Server 2000 的分頁方案大多采用存儲過程來完成,存儲過程書寫比較複雜,在參考了ITPUB網站上衆多網友的意見後用一條SQL語句就可以實現分頁功能。
SELECT TOP 頁大小 *
FROM
Users
WHERE
(ID NOT IN (SELECT TOP (頁大小*(頁數-1)) ID FROM Users ORDER BY ID DESC))
ORDER BY
ID DESC
注:頁大小指的是每頁顯示的條數。黃底部分是需要用程序運算後的一個數字。
千萬級數據分頁的存儲過程: 引用自:Oracle分頁(limit方式的運用)+付上SqlServer分頁+千萬級數據分頁的存儲過程 /* declare @strSQL varchar(6000) -- 主語句 if @OrderType != 0 set @strSQL = 'select top ' + str(@PageSize) + ' * from [' if @strWhere != '' if @PageIndex = 1 set @strSQL = 'select top ' + str(@PageSize) + ' * from [' exec (@strSQL) GO |
Oracle分頁(limit方式的運用)+付上SqlServer分頁+千萬級數據分頁的存儲過程
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.